
在PyQt中利用QPainter实现UI窗口绘图
在已有的PyQt UI窗口中绘制图形,需要重写窗口的paintEvent方法,并在其中调用QPainter进行绘图操作。
以下示例演示如何在窗口中绘制线条:
import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtGui import QPainter, QPenclass 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_())
代码中,paintEvent方法被重写以启动和结束QPainter绘图。drawLines方法使用QPainter绘制线条。通过重写paintEvent并使用QPainter,即可在PyQt UI窗口中绘制自定义图形。 请注意,示例代码已将paintEvent方法的事件参数名称修正为event,这是更标准的写法。
以上就是PyQt中如何使用QPainter在UI窗口中绘制图形?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1357106.html
微信扫一扫
支付宝扫一扫