【发布时间】:2014-03-27 19:56:26
【问题描述】:
我目前正在尝试使用 python 和 PyQt4(不是 Qt Designer)创建一个程序。 我创建了一个登录类(QDialog)和一个主页类(QMainWindow)。但是,因为我的程序将包含大量页面(通过程序的导航会很大),所以我想知道如何在 QMainWindow 中切换布局,而不是不断地创建新窗口并关闭旧窗口。例如,我会在登录后将 MainWindow('HomePage')布局设置为默认屏幕,然后在 MainWindow 中有一个子类,它允许我导航到用户设置(或任何其他页面)。有没有办法让我将 MainWindow 布局交换为 User Setting 布局,而不是创建一个新窗口并关闭 MainWindow? (如果这没有意义,我很抱歉,我是 PyQt 的新手)。 示例代码如下所示(V.Basic代码)
---------------------------------------------- ----------------------------------
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MainWindow(QMainWindow):
#Constructor
def __init__(self):
super(MainWindow, self).__init__() #call super class constructor
button1 = QPushButton("User Settings", self)
button1.clicked.connect(UserSelection)
button1.resize(50,50)
button1.move(350,50)
self.show()
class UserSelection(?):
...
def main():
app = QApplication(sys.argv) #Create new application
Main = MainWindow()
sys.exit(app.exec_()) #Monitor application for events
if __name__ == "__main__":
main()
【问题讨论】:
-
您可以通过替换 QMainWindow 的 centralWidget 来做到这一点。几分钟后我会举一个例子。