Python+PyQt5: 如何在已有ui窗口里,使用QPainter画矩形?

发布于 2022-09-06 08:14:59 字数 964 浏览 11 评论 0

大家好。

我是python2和PyQt5的新手。想请问一下,如何在已经调入的ui窗口里用QPainter画矩形?

UI窗口是用QT Creator做的。很简单就不上传图了。这个窗口里里只有一个按键,名为“pushButton”

程序目标是:按下pushButton,在当前窗口的里面画一个矩形。

下面是我的代码。运行后,UI窗口可以打开,但一点pushButton,窗口自动关闭。

# -*- coding: utf-8 -*-

import sys
from PyQt5 import QtGui, QtWidgets, uic, QtCore


qtCreatorFile = "F:\\Test.ui"

class MyApp(QtWidgets.QDialog):

    def __init__(self):
        super(MyApp, self).__init__()
        uic.loadUi(qtCreatorFile, self)
        self.show()
        self.pushButton.clicked.connect(self.function_Plot_using_Canvas)


    def function_Plot_using_Canvas(self):

        self.QPainter.setBrush(QColor(0, 0, 0, 127))
        self.QPainter.setPen(Qt.white)

        self.QPainter.drawRect(50,50,50,50)

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyApp()
    sys.exit(app.exec_())


我是新手,自己试了N次,都没搞定。

所以想请高手帮忙指导一下。改一下代码。

感谢万分!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月光色 2022-09-13 08:14:59

在QDialog类下 覆盖 paintevent就可以了。

def paintevent(self, event):
    qp = QPainter()
    qp.begin(self)
    qp.setBrush(QColor(0,0,0))
    qp.drawRect(50,50,50,50)
    qp.end()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文