Я не уверен, почему это приложение ничего не отображает. Я воспроизведу несколько строк, чтобы представить суть проблемы. Использование PyQt4QGraphicsView не отображается в QMainWindow
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 (сцена) впоследствии. – floogads
Это странно. Эквивалентный код для вашего на C++ отлично работает. В моем коде, однако, я установил родительский «self» для SomeScene(), QHBoxLayout() и QWidget(). –