Python仍然是新的,所以我正在尝试让QGraphicsScene在一个QMainWindow中。现在,我编写它的方式是两个窗口将出现,但我只希望一个窗口与QGraphicsScene“在”QMainWindow中出现。这是我的代码:
import sys
from PyQt4 import QtGui, QtCore
class MyView(QtGui.QGraphicsView):
def __init__(self):
QtGui.QGraphicsView.__init__(self)
self.scene = QtGui.QGraphicsScene(self)
self.item = QtGui.QGraphicsRectItem(300,400,100,100)
self.scene.addItem(self.item)
self.setScene(self.scene)
class Window(QtGui.QMainWindow):
def __init__(self):
#This initializes the main window or form
super(Window,self).__init__()
self.setGeometry(50,50,900,700)
self.setWindowTitle("Pre-Alignment system")
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
view = MyView()
view.show()
sys.exit(app.exec_())
run()非常感谢!
发布于 2015-06-16 14:13:37
Qt (和其他GUI工具包)相信为人父母。在另一个窗口或小部件中有一个窗口或小部件,设置其父窗口或小部件。请注意,您应该在外部调用show。
import sys
from PyQt4 import QtGui, QtCore
class MyView(QtGui.QGraphicsView):
def __init__(self, parent=None):
QtGui.QGraphicsView.__init__(self, parent=parent)
self.scene = QtGui.QGraphicsScene(self)
self.item = QtGui.QGraphicsRectItem(300,400,100,100)
self.scene.addItem(self.item)
self.setScene(self.scene)
class Window(QtGui.QMainWindow):
def __init__(self, parent=None):
#This initializes the main window or form
super(Window,self).__init__(parent=parent)
self.setGeometry(50,50,900,700)
self.setWindowTitle("Pre-Alignment system")
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
view = MyView(GUI)
GUI.show()
sys.exit(app.exec_())
run()发布于 2015-06-16 13:58:24
您必须在您的QGraphicsScene中创建QMainWindow (就像您希望它出现一样)。
然后,在总体上,您只创建一个Window实例并显示它。
class Window(QtGui.QMainWindow):
def __init__(self):
#This initializes the main window or form
super(Window,self).__init__()
self.setGeometry(50,50,900,700)
self.setWindowTitle("Pre-Alignment system")
#create the view
self.view=MyView()
self.setCentralWidget(self.view)
if __name__=='__main__':
app = QtGui.QApplication(sys.argv)
GUI = Window()
GUI.show()
sys.exit(app.exec_())https://stackoverflow.com/questions/30869359
复制相似问题