写一个用pyqt5不用虚函数(paintEvent)生成柱状图的代码
时间: 2024-02-13 17:01:00 浏览: 67
基于Python PyQt5实现绘制三维柱状图项目源码
好的,下面是一个用PyQt5实现的简单柱状图的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QPen, QColor
class BarChart(QWidget):
def __init__(self, data):
super().__init__()
self.data = data
def paintEvent(self, event):
painter = QPainter(self)
painter.setPen(QPen(QColor(0, 0, 0), 2))
bar_width = 50
x = 50
y = 250
for value in self.data:
painter.drawRect(x, y - value, bar_width, value)
x += bar_width + 10
def sizeHint(self):
return self.minimumSizeHint()
def minimumSizeHint(self):
return (len(self.data) * 60, 300)
if __name__ == '__main__':
data = [100, 200, 150, 300, 250]
app = QApplication(sys.argv)
chart = BarChart(data)
chart.show()
sys.exit(app.exec_())
```
这个代码演示了如何使用PyQt5在QWidget上绘制柱状图。在这个示例中,我们使用了QWidget的paintEvent函数来绘制图形。我们也可以通过重写QWidget的sizeHint和minimumSizeHint函数来设置窗口的大小。
阅读全文