使用pyqt从主界面选择3个次界面中的一个跳转

from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout, QDialog

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()
    
    def initUI(self):
        self.setWindowTitle('主界面')
        self.setGeometry(100, 100, 300, 200)

        # 按钮布局
        layout = QVBoxLayout()
        
        # 创建按钮并添加到布局中
        self.button1 = QPushButton('打开界面1', self)
        self.button1.clicked.connect(self.openWindow1)
        layout.addWidget(self.button1)
        
        self.button2 = QPushButton('打开界面2', self)
        self.button2.clicked.connect(self.openWindow2)
        layout.addWidget(self.button2)
        
        self.button3 = QPushButton('打开界面3', self)
        self.button3.clicked.connect(self.openWindow3)
        layout.addWidget(self.button3)
        
        # 设置中心窗口
        centralWidget = QWidget()
        centralWidget.setLayout(layout)
        self.setCentralWidget(centralWidget)
    
    def openWindow1(self):
        self.window1 = SubWindow1(self)
        self.window1.show()
    
    def openWindow2(self):
        self.window2 = SubWindow2(self)
        self.window2.show()
    
    def openWindow3(self):
        self.window3 = SubWindow3(self)
        self.window3.show()

class SubWindow1(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.initUI()
    
    def initUI(self):
        self.setWindowTitle('界面1')
        self.setGeometry(100, 100, 200, 100)

class SubWindow2(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.initUI()
    
    def initUI(self):
        self.setWindowTitle('界面2')
        self.setGeometry(100, 200, 200, 100)

class SubWindow3(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.initUI()
    
    def initUI(self):
        self.setWindowTitle('界面3')
        self.setGeometry(100, 300, 200, 100)

if __name__ == '__main__':
    app = QApplication([])
    mainWindow = MainWindow()
    mainWindow.show()
    app.exec_()

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用QStackedWidget来实现登录界面和主界面之间的跳转。具体步骤如下: 1. 在Qt Designer创建两个窗口,一个是登录界面一个是主界面。 2. 在登录界面添加一个按钮,当用户点击该按钮时,跳转到主界面。 3. 在主界面添加一个按钮,当用户点击该按钮时,返回登录界面。 4. 在主函数初始化两个窗口,并使用QStackedWidget将它们添加到堆栈。 5. 在登录界面的按钮槽函数使用堆栈的setCurrentIndex()函数将堆栈切换到主界面。 6. 在主界面的按钮槽函数使用堆栈的setCurrentIndex()函数将堆栈切换回登录界面。 以下是一个简单的示例代码: ``` python from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QStackedWidget class LoginWidget(QWidget): def __init__(self): super().__init__() self.login_button = QPushButton("Login") self.login_button.clicked.connect(self.switch_to_main) layout = QVBoxLayout() layout.addWidget(self.login_button) self.setLayout(layout) def switch_to_main(self): stacked_widget.setCurrentIndex(1) class MainWidget(QWidget): def __init__(self): super().__init__() self.back_button = QPushButton("Back") self.back_button.clicked.connect(self.switch_to_login) layout = QVBoxLayout() layout.addWidget(self.back_button) self.setLayout(layout) def switch_to_login(self): stacked_widget.setCurrentIndex(0) if __name__ == '__main__': app = QApplication([]) stacked_widget = QStackedWidget() login_widget = LoginWidget() main_widget = MainWidget() stacked_widget.addWidget(login_widget) stacked_widget.addWidget(main_widget) stacked_widget.show() app.exec_() ``` 在这个示例,我们创建了两个QWidget窗口:LoginWidget和MainWidget。在LoginWidget,我们添加了一个QPushButton,当用户点击该按钮时,切换到MainWidget。在MainWidget,我们添加了一个QPushButton,当用户点击该按钮时,切换回LoginWidget。我们使用QVBoxLayout将按钮添加到QWidget。 在主函数,我们创建了一个QStackedWidget,并将LoginWidget和MainWidget添加到堆栈。我们使用setCurrentIndex()函数初始化堆栈并显示它。当用户点击按钮时,我们使用setCurrentIndex()函数切换窗口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值