pyqt6画一个柱状图
时间: 2023-10-30 22:03:36 浏览: 152
以下是使用PyQt6绘制柱状图的示例代码:
```python
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QPainter, QBrush, QPen
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget
import sys
class BarChart(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Bar Chart")
self.setGeometry(100, 100, 600, 400)
self.data = [10, 30, 50, 70, 90]
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
bar_width = 40
bar_height = 300
margin = 50
x = margin
for value in self.data:
rect = Qt.QRect(x, self.height() - margin - bar_height, bar_width, bar_height)
painter.setPen(QPen(Qt.black, 2))
painter.setBrush(QBrush(Qt.blue))
painter.drawRect(rect)
painter.setPen(QPen(Qt.black, 1))
painter.drawText(rect, Qt.AlignCenter, str(value))
x += margin + bar_width
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = QMainWindow()
window = BarChart()
mainWindow.setCentralWidget(window)
mainWindow.show()
sys.exit(app.exec())
```
这段代码创建了一个名为BarChart的QWidget,并在其中实现了绘制柱状图的函数paintEvent。数据存储在self.data中,可以通过修改这个列表来更改柱状图的数据。在paintEvent中,通过循环遍历数据,绘制每个柱子。每个柱子由一个矩形和一个文本标签组成。我们使用QPainter类来绘制矩形和文本。在最后,我们将BarChart添加到一个QMainWindow中,并显示出来。
阅读全文