gpt4 book ai didi

python - 单击按钮时pyQt4绘制一个矩形

转载 作者:行者123 更新时间:2023-11-28 17:32:55 26 4
gpt4 key购买 nike

目标

我试图在单击按钮时在我的窗口中绘制一个矩形。

问题

当我使用按钮允许绘制矩形时,它会在按钮后面绘制矩形: Rectangle behind button image

如果我最小化然后重新打开窗口,它会正确绘制矩形,所以我认为这是焦点问题,但当我尝试更改焦点时它没有帮助。

编辑:单击按钮时对原始窗口执行某些操作会在正确位置绘制矩形。例如:

self.setStyleSheet("background-color: black; color: white")

虽然这是一个非常困惑的解决方案。

代码

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

draw = False

def __init__(self):
super(Example, self).__init__()

self.initUI()
self.test = self

def initUI(self):

self.setGeometry(400, 400, 400, 400)

qbtn = QtGui.QPushButton('Paint', self)
qbtn.clicked.connect(self.buttn)
qbtn.resize(qbtn.sizeHint())
qbtn.move(50, 50)

self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Paint')
self.show()

def paintEvent(self, e):

qp = QtGui.QPainter()
qp.begin(self)
self.drawRectangles(qp)
qp.end()

def drawRectangles(self, qp):

if self.draw:
qp.setBrush(QtGui.QColor(000, 000, 255))
qp.drawRect(0, 0, 90, 60)

@QtCore.pyqtSlot()
def buttn(self):
self.draw = True


def main():

app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())


if __name__ == '__main__':
main()

最佳答案

下面的方法似乎可行,而且看起来不太乱:

self.update()

关于python - 单击按钮时pyQt4绘制一个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com