画完界面UI后,需要建立左侧导航栏中各按键Button与右侧stackedWidget各页面的连接关系,利用Pyqt信号与槽的连接机制,实现点击不同的Button跳转到不同的页面。
通过Designer在Ui界面中设置
选择界面中stackedwidget,鼠标右击弹出菜单,可以插入新页面,删除页面、切换页面page。也可以变更各页面的index顺序。
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)
每个槽函数,响应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) # 通讯录
各页面具体功能将通过功能函数实现。
未完待续。。。