我使用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_()
显然这里有一个错误报告:Bugreport。我不得不最后将QSpinBox
添加到常规QWidget
而不是QGraphicsView
下。
答案 0 :(得分:0)
为什么要将旋转箱放在QGraphicsScene
中?这似乎很奇怪。如果您没有一些神秘的原因,但只想要一个功能性,非闪烁的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_()