PyQt的/ PySide QSpinBox闪烁的问题(PyQt/PySide QSpinBox f

2019-10-17 06:33发布

我添加使用QGraphicsProxyWidget一个QSpinBox到QGraphicsScene。 每次我将鼠标悬停在QSpinBox,它覆盖在纺纱器控件黑带闪烁。 我附上截图和下面的代码。 难道我做错了什么? 是否有办法避免这种情况? Pyside 1.1.2,Python 2.7版,Windows7的。

class testWidget(QGraphicsView):
    def __init__(self):
        QGraphicsView.__init__(self)

        floorSpinBox = QSpinBox()
        floorSpinBox.setGeometry(0,0,50,25)

        proxyWidget = QGraphicsProxyWidget() 
        proxyWidget.setWidget(floorSpinBox)

        scene = QGraphicsScene(self)
        scene.addItem(proxyWidget)
        self.setScene(scene)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = testWidget()
    widget.show()
    app.exec_()

编辑

显然,这里存在一个提交错误报告: 错误报告 。 我不得不终于添加QSpinBox到正规QWidget ,而不是根据QGraphicsView

Answer 1:

你为什么把在纺纱器QGraphicsScene ? 这似乎是相当奇怪的。 如果没有某种神秘的原因是什么,但只想要一个功能,nonflashing UI元素,请尝试将testWidget一个QDialog ,而不是一个QGraphicsView

from PyQt4.QtGui import QDialog, QSpinBox,QApplication
import sys

class testWidget(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        self.setGeometry(200,200,200,100)

        floorSpinBox = QSpinBox(self)
        floorSpinBox.setGeometry(75,40,50,25)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = testWidget()
    widget.show()
    app.exec_()


文章来源: PyQt/PySide QSpinBox flickering issue