PyQt项目实战-工作小助手(2 Button控件与stackedWidget页面连接)

PyQt项目实战-工作小助手(2 Button控件与stackedWidget页面连接)

画完界面UI后,需要建立左侧导航栏中各按键Button与右侧stackedWidget各页面的连接关系,利用Pyqt信号与槽的连接机制,实现点击不同的Button跳转到不同的页面。

文章目录

  • PyQt项目实战-工作小助手(2 Button控件与stackedWidget页面连接)
    • 1、stackedwidget多页面设置
    • 2、左侧菜单中各Button的clicked信号与各槽函数关联
    • 3、设计触发的槽函数功能

1、stackedwidget多页面设置

通过Designer在Ui界面中设置

选择界面中stackedwidget,鼠标右击弹出菜单,可以插入新页面,删除页面、切换页面page。也可以变更各页面的index顺序。

PyQt项目实战-工作小助手(2 Button控件与stackedWidget页面连接)_第1张图片
PyQt项目实战-工作小助手(2 Button控件与stackedWidget页面连接)_第2张图片

2、左侧菜单中各Button的clicked信号与各槽函数关联

self.toolButton_index.clicked.connect(self.on_toolButton_index_clicked) 槽函数无需括号

class MainWin(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
        self.setWindowTitle('工作汪小助手')  # 设置窗体标题

        # 左侧菜单按键信号与槽链接
        self.toolButton_index.clicked.connect(self.on_toolButton_index_clicked)
        self.toolButton_todo.clicked.connect(self.on_toolButton_todo_clicked)
        self.toolButton_req.clicked.connect(self.on_toolButton_req_clicked)
        self.toolButton_qa.clicked.connect(self.on_toolButton_qa_clicked)
        self.toolButton_compa.clicked.connect(self.on_toolButton_compa_clicked)
        self.toolButton_conta.clicked.connect(self.on_toolButton_conta_clicked)
        self.toolButton_weekreport.clicked.connect(self.on_toolButton_workreport_clicked)

3、设计触发的槽函数功能

每个槽函数,响应button点击信号后:
一是需将Stackedwidget对应的页面index设置为当前页面,从而实现页面的跳转。

self.stackedWidget.setCurrentIndex(i) # i为stackedwidget 的 page index

二是实现调用不同页面初始化的功能函数。在本项目中,希望点击后能实现数据库的实时查询,所以各相关页面在跳转后,均增加了相应的数据查询获取函数。通过这些函数实现对不同数据表中数据的查询返回。

# 槽函数,显示不同的界面
    def on_toolButton_index_clicked(self):
        self.stackedWidget.setCurrentIndex(0)  # 0工作站
        self.gettodosum()
        self.getreqsum()
    def on_toolButton_todo_clicked(self):
        self.stackedWidget.setCurrentIndex(1)  # 1.1工作计划
        self.todo_query()  # 自动查询todolist
    def on_toolButton_workreport_clicked(self):
        self.stackedWidget.setCurrentIndex(2)  # 1.2工作周报
        self.report_query()
    def on_toolButton_req_clicked(self):
        self.stackedWidget.setCurrentIndex(3)  # 2.1需求管理
        self.req_query()
    def on_toolButton_qa_clicked(self):
        self.stackedWidget.setCurrentIndex(4)  # 3.1系统问题
        self.qa_query()
    def on_toolButton_compa_clicked(self):
        self.stackedWidget.setCurrentIndex(5)  # 数据罗盘
    def on_toolButton_conta_clicked(self):
        self.stackedWidget.setCurrentIndex(6)  # 通讯录

各页面具体功能将通过功能函数实现。

未完待续。。。

你可能感兴趣的:(python学习,python,pyqt)