“qpaint::begin:Paint device返回引擎==0,类型:1”,使用PySid

2024-04-25 21:36:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下测试代码:

import sys
from PySide.QtGui import *

app = QApplication(sys.argv)
widget = QWidget()
painter = QPainter(widget)

在创建qpanter对象时,我得到错误消息:

^{pr2}$

为什么?在


Tags: 对象fromimportappsyswidgetpyside测试代码
1条回答
网友
1楼 · 发布于 2024-04-25 21:36:40

如果你想在一个小部件内绘制一些东西,你需要使用小部件的paintEvent来定义一个QPainter。此方法允许为立即绘制声明Qpainter,并且通过这种方式避免调用Qpainter.begin()和{}。在

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.drawLine(0, 0, 100, 100)

app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())

http://doc.qt.io/qt-5/qpainter.html#details

Warning: When the paintdevice is a widget, QPainter can only be used inside a paintEvent() function or in a function called by paintEvent().

相关问题 更多 >