
PyQt5使用按键实现QStackedWidget切换
发布日期:2021-05-07 04:11:46
浏览次数:22
分类:精选文章
本文共 2686 字,大约阅读时间需要 8 分钟。
在官方文档中,推荐当我们使用QStackedWidget
元件时,使用QComboBox
或者QListWidget
元件与它相关联起来进行不同页的切换,那么有没有可能我们将按键元件和它关联起来进行不同页的操作呢?答案是可以的,这里记录一下,请看如下代码:
# -*- coding:utf-8 -*-import sysfrom PyQt5.QtWidgets import QApplication, QListWidget, QWidget, QStackedWidget, QHBoxLayout, QGridLayout, \ QPushButtonclass App(QWidget): def __init__(self, parent=None): super(App, self).__init__(parent) # 创建左侧按键元件 self.btn1 = QPushButton("按钮1") self.btn2 = QPushButton("按钮2") self.btn3 = QPushButton("按钮3") # 设置按键点击属性 self.btn1.clicked.connect(self.display) self.btn2.clicked.connect(self.display) self.btn3.clicked.connect(self.display) # 创建左侧布局 self.left_layout = QGridLayout() self.left_layout.addWidget(self.btn1) self.left_layout.addWidget(self.btn2) self.left_layout.addWidget(self.btn3) # 创建左侧组件 self.left_widget = QWidget() self.left_widget.setLayout(self.left_layout) # 创建右侧分页 self.stack1 = QWidget() self.stack2 = QWidget() self.stack3 = QWidget() # 创建右侧分页各个组件 self.initStack1() self.initStack2() self.initStack3() # 创建整体页组件,并将三个分页添加到主页上 self.Stack = QStackedWidget() self.Stack.addWidget(self.stack1) self.Stack.addWidget(self.stack2) self.Stack.addWidget(self.stack3) # 创建主组件布局 self.main_layout = QHBoxLayout() # 向主组件布局中添加左右两个整体组件 self.main_layout.addWidget(self.left_widget) self.main_layout.addWidget(self.Stack) # 设置主组件的布局为创建的主布局 self.setLayout(self.main_layout) def initStack1(self): layout = QHBoxLayout() list1 = QListWidget() list1.insertItem(0, "第一页") layout.addWidget(list1) self.stack1.setLayout(layout) def initStack2(self): layout = QHBoxLayout() list1 = QListWidget() list1.insertItem(0, "第二页") layout.addWidget(list1) self.stack2.setLayout(layout) def initStack3(self): layout = QHBoxLayout() list1 = QListWidget() list1.insertItem(0, "第三页") layout.addWidget(list1) self.stack3.setLayout(layout) def display(self): sender = self.sender() if sender.text() == "按钮1": self.Stack.setCurrentIndex(0) elif sender.text() == "按钮2": self.Stack.setCurrentIndex(1) elif sender.text() == "按钮3": self.Stack.setCurrentIndex(2)def main(): app = QApplication(sys.argv) window = App() window.show() sys.exit(app.exec())if __name__ == '__main__': main()
至此,使用按钮来实现QStackedWidget
切换被完成。效果图如下:

至于sender
的用法,可以参考(超链接点击跳转)进行学习。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月18日 15时29分08秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CSS躬行记(2)——伪类和伪元素
2019-03-06
JavaScript作用域原理(一)——作用域链
2019-03-06
JavaScript作用域原理(三)——作用域根据函数划分
2019-03-06
JavaScript闭包(一)——实现
2019-03-06
grape动态PHP结构(二)——管理后台
2019-03-06
JavaScript中事件处理
2019-03-06
前端自动化构建工具gulp记录
2019-03-06
移动端图片操作(一)——上传
2019-03-06
Hammer.js分析(四)——recognizer.js
2019-03-06
移动端 H5图片裁剪插件,内置简单手势操作
2019-03-06
JavaScript性能优化 DOM编程
2019-03-06
综合架构的简述
2019-03-06
经典shell面试题
2019-03-06
Linux基础命令总结
2019-03-06
Linux基础考试题(老男孩)
2019-03-06
CentOS 7 Xinetd服务安装配置
2019-03-06
lsof命令总结
2019-03-06
2019年8月19日~8月25日 第八周JAVA学习总结
2019-03-06
maven build错误解决
2019-03-06