1

我使用 QGraphicsProxyWidget 将 QSpinBox 添加到 QGraphicsScene。每次我将鼠标悬停在 QSpinBox 上时,它都会闪烁,并在 spinbox 控件上覆盖一条黑色带。我附上了截图和下面的代码。难道我做错了什么?有没有办法避免这种情况?Pyside 1.1.2、Python 2.7、Windows7。

QSpinBox在悬停时闪烁

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_()

编辑

显然这里有一个错误报告:Bugreport。我最终不得不将其添加QSpinBox到常规QWidget而不是下QGraphicsView

4

1 回答 1

0

为什么你把纺纱箱放在一个QGraphicsScene?这似乎很奇怪。如果您对此没有什么神秘的原因,而只是想要一个功能性的、非闪烁的 UI 元素,请尝试将您的 testWidget 设为 aQDialog而不是 a 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_()
于 2012-10-04T22:15:12.257 回答