【发布时间】:2011-04-09 12:17:46
【问题描述】:
我不确定为什么这个应用程序没有显示任何内容。我将在几行中重现以提供问题的要点。使用 PyQt4
class SomeScene(QtGui.QGraphicsScene):
def __init__(self, parent = None):
QtGui.QGraphicsScene.__init__(self, parent)
pixmap = QtGui.QPixmap('someImage') # path is DEFINITELY valid
item = QGraphicsPixmapItem(pixmap)
self.addItem(item)
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
... # code to set up window
scene = SomeScene()
view = QtGui.QGraphicsView(scene)
hbox = QtGui.QHBoxLayout()
hbox.addWidget(view)
mainWidget = QtGui.QWidget()
mainWidget.setLayout(hbox)
self.setCentralWidget(mainWidget)
app = QtGui.QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
这只会显示一个空格。
【问题讨论】:
-
修复了问题,但很奇怪。即使文档表明可以,您也无法使用场景初始化“视图”。相反,您需要使用默认构造函数,然后手动调用 view.setScene(scene)。
-
这很奇怪。与您在 C++ 中的等效代码可以正常工作。不过,在我的代码中,我将 SomeScene()、QHBoxLayout() 和 QWidget() 的父级设置为“self”。
标签: python user-interface qt frameworks pyqt