
在PyQt中利用QPainter实现UI窗口绘图
在已有的PyQt UI窗口中绘制图形,需要重写窗口的paintEvent方法,并在其中调用QPainter进行绘图操作。
以下示例演示如何在窗口中绘制线条:
<code class="python">import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QPainter, QPen
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
def paintEvent(self, event): # 注意这里修改了事件参数名称
qp = QPainter()
qp.begin(self)
self.drawLines(qp)
qp.end()
def drawLines(self, qp):
pen = QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine)
qp.setPen(pen)
qp.drawLine(120, 120, 120, 210)
qp.drawLine(135, 94, 120, 120)
qp.drawLine(135, 94, 150, 120)
qp.drawLine(150, 120, 150, 210)
qp.drawLine(120, 210, 150, 210)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())</code>代码中,paintEvent方法被重写以启动和结束QPainter绘图。drawLines方法使用QPainter绘制线条。通过重写paintEvent并使用QPainter,即可在PyQt UI窗口中绘制自定义图形。 请注意,示例代码已将paintEvent方法的事件参数名称修正为event,这是更标准的写法。
以上就是PyQt中如何使用QPainter在UI窗口中绘制图形?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号