【发布时间】:2017-05-08 11:39:46
【问题描述】:
好的,我正在从 Tkinter 跳到 PyQt,因为 PyQt 更先进,更易于使用。但!我在这里遇到了一些麻烦。
按下主屏幕上的一个按钮后,我试图更改 GUI 布局。我按下主 GUI 页面的第一个按钮,然后我希望它转到我将创建的另一个 GUI 页面。我已经坐在这里几个小时试图找到一些方法来做到这一点 - YouTube 上没有视频,我还没有找到任何有帮助的堆栈溢出页面。所以我了解到有一个 Qt Designer 程序。我不喜欢这样的程序,所以请尽量不要在回答时使用它。
PS:我不想处理多个 .py 文件,但如果没有其他方法,我想我将不得不这样做。
到目前为止,这是我的代码:
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50, 50, 400, 450)
self.setFixedSize(400,450)
self.setWindowTitle(" Tool")
self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
self.home()
def home(self):
ToolsBTN = QtGui.QPushButton('text', self)
ToolsBTN.clicked.connect(ToolTab)
ToolsBTN.move(50, 350)
CPSBTN = QtGui.QPushButton('text', self)
CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
CPSBTN.move(150, 350)
CreatorBTN = QtGui.QPushButton('Creator', self)
CreatorBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
CreatorBTN.move(250, 350)
self.show()
class ToolTab(QtGui.QMainWindow):
def __init__2(self):
super(ToolTab, self).__init__2()
self.setGeometry(50, 50, 400, 450)
self.setFixedSize(400,450)
self.setWindowTitle(" Tool")
self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
self.Toolsgui()
def Toolsgui(self):
CPSBTN = QtGui.QPushButton('123', self)
CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
CPSBTN.move(150, 300)
self.show()
def Run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
GUITOOL = ToolTab()
sys.exit(app.exec_())
Run()
【问题讨论】:
-
你没有改变布局 - 你改变了窗口。您关闭一个窗口并打开新窗口。更改布局意味着您只有一个窗口,您可以替换此窗口内的小部件。
-
嘿,在
ToolTab类中,您正在使用__init__2(*args)作为构造函数。但是还是和__init__构造函数一样吗?
标签: python pyqt pyqt4 qmainwindow