designer pyqt5 界面切换_PyQT5堆叠布局:切换界面(QStackedLayout)

936c9cd0543d6a3fcd3cfc72ddd297cc.png

几乎所有的GUI界面都需要用到这个场景:在一个界面里面,点击不同的按钮显示不同的内容

在Qt设计师中没有堆叠布局,需要我们手动添加


在Qt设计师中,设计3个切换的页面,和一个主界面。

注意在主界面是两个frame控件的水平布局

6d9aa2358a26b9ddc37d5a362902167b.png

将所有界面的ui文件转换成py文件

木子-李:PyCharm中Qt Designer+PyUIC配置​zhuanlan.zhihu.com
dc6ece2297b17fbf1f5150ba1f25398d.png

在主界面编写以下代码

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5中,可以使用QStackedWidget小部件来实现界面切换。QStackedWidget是一个可以在堆栈中显示多个子窗口的容器,每个子窗口之间可以通过堆栈顶部的导航条进行切换。 以下是实现界面切换的步骤: 1. 在Qt Designer中创建多个界面,每个界面都保存为.ui文件。 2. 使用pyuic5工具将.ui文件转换为.py文件。 3. 在主程序中导入每个生成的.py文件。 4. 创建一个QStackedWidget对象,将所有界面添加到堆栈中。 5. 在需要进行界面切换的时候,使用setCurrentIndex方法来设置当前显示的界面。 下面是一个简单的示例代码: ``` from PyQt5.QtWidgets import QApplication, QMainWindow, QStackedWidget from ui_mainwindow import Ui_MainWindow from ui_subwindow1 import Ui_SubWindow1 from ui_subwindow2 import Ui_SubWindow2 class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) # 创建堆栈小部件 self.stack = QStackedWidget(self.centralwidget) self.stack.setGeometry(0, 0, 800, 600) self.setCentralWidget(self.stack) # 创建子窗口1 self.subwindow1 = SubWindow1() self.stack.addWidget(self.subwindow1) # 创建子窗口2 self.subwindow2 = SubWindow2() self.stack.addWidget(self.subwindow2) # 绑定按钮信号和槽函数 self.pushButton.clicked.connect(self.showSubWindow1) self.pushButton_2.clicked.connect(self.showSubWindow2) def showSubWindow1(self): self.stack.setCurrentIndex(0) def showSubWindow2(self): self.stack.setCurrentIndex(1) class SubWindow1(QWidget, Ui_SubWindow1): def __init__(self): super().__init__() self.setupUi(self) class SubWindow2(QWidget, Ui_SubWindow2): def __init__(self): super().__init__() self.setupUi(self) if __name__ == '__main__': app = QApplication([]) window = MainWindow() window.show() app.exec_() ``` 在这个例子中,我们使用了三个.ui文件来创建主窗口和两个子窗口。主窗口包含了一个QStackedWidget对象和两个按钮,用于在子窗口之间进行切换。在主程序中,我们将所有的界面都添加到了堆栈中,并且绑定了按钮信号和槽函数。在槽函数中,我们使用setCurrentIndex方法来切换当前显示的界面

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值