pyqt5 QPainter加入到QVBoxLayout中
时间: 2024-05-08 09:15:21 浏览: 106
Qt 垂直布局 (QVBoxLayout)
可以使用QWidget将QPainter画布包裹起来,然后将该QWidget添加到QVBoxLayout中。
以下是示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
from PyQt5.QtGui import QPainter, QColor, QPen
class MyWidget(QWidget):
def __init__(self):
super().__init__()
def paintEvent(self, event):
qp = QPainter(self)
qp.setPen(QPen(QColor(255, 0, 0), 5))
qp.drawLine(0, 0, self.width(), self.height())
qp.drawLine(0, self.height(), self.width(), 0)
app = QApplication(sys.argv)
window = QWidget()
layout = QVBoxLayout()
my_widget = MyWidget()
layout.addWidget(my_widget)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
```
在上面的代码中,我们创建了一个自定义的QWidget(MyWidget),在其paintEvent()方法中使用QPainter绘制了两条对角线。
然后,我们创建了一个QWidget对象(my_widget),将其添加到QVBoxLayout中,并将该QVBoxLayout设置为窗口的布局。
最后,我们显示了窗口。运行该代码,你将会看到一个包含两条对角线的窗口。
阅读全文