前言
本節我們學習使用Qt Designer設計菜單欄、工具欄和狀態欄,並完成一個串口工具的界面設計,在接下來教程中,我們將逐步實現一個串口調試助手,並詳細介紹相關的其他知識點。
一、基礎知識
1.菜單欄簡介
菜單欄位於窗口上方,標題下面,菜單欄中的菜單屬於QMenu類,下拉菜單和子菜單屬於QAction類,點擊任何QAction按鈕時,QMenu對象都會觸發triggered信號,本教程主要使用Designer設計,所以不需要了解QMenu和QAction的具體創建和添加到菜單欄等操作,僅需要關注triggered信號即可。
Qmenu和QAction中常用方法如下:
2.工具欄簡介
QToolBar控件位於菜單欄下方,是由文本按鈕,圖標或其他小控件按鈕組成的可移動面板,在Designer中可以通過在空白處右鍵選擇Add Tool Bar,和菜單欄類似,每次點擊工具欄中的按鈕,都會觸發Triggered信號。
QToolBar中常用方法如下:
3.狀態欄簡介
使用Qt Designer設計的MainWindow界面,最底部默認有一個水平狀態欄(QstatusBar),用於顯示永久或臨時的狀態信息
QStatusBar中常用方法如下:
二、實例
1. QT Designer設計UI
打開designer.exe,使用默認的Main Window創建,直接點擊Create按鈕即可
設計Main Window主頁面如下,菜單欄中菜單分別為編輯、顯示、工具、幫助,狀態欄默認在最下方,可以在下方右鍵選擇Remove Status Bar刪除。
注意菜單欄中的菜單屬於QMenu類,下拉菜單和子菜單屬於QAction類
在UI界面下方空白處右鍵選擇Add Toor Bar,將菜單欄子菜單對應的Action拖動到Tool Bar中,並按照下圖方式為Action添加圖標。
點擊OK按鈕後保存設置,界面如下:
其他Action按照同樣方法操作,最終結果如下圖:
2 將*.ui轉換為ui_action_tool.py
進入run.py目錄,輸入如下命令:
<code>pyuic5 -o ui_action_tool.py action_tool.ui/<code>
3 編寫python程序
<code>import sys
import PyQt5.QtWidgets as qw
import ui_action_tool
# sys.setrecursionlimit(1000000)
class myForm(qw.QMainWindow, ui_action_tool.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.statusbar.showMessage("status:ok")
self.action_start.triggered.connect(self.action_start_cb)
self.action_pause.triggered.connect(self.action_pause_cb)
self.action_exit.triggered.connect(self.action_exit_cb)
self.action_clear.triggered.connect(self.action_clear_cb)
def action_start_cb(self):
qw.QMessageBox.information(self, "提示", "您點擊了Start")
def action_pause_cb(self):
qw.QMessageBox.information(self, "提示", "您點擊了Pause")
def action_exit_cb(self):
qw.QMessageBox.information(self, "提示", "您點擊了Stop")
def action_clear_cb(self):
qw.QMessageBox.information(self, "提示", "您點擊了exit")
if __name__ == '__main__':
app = qw.QApplication(sys.argv)
w1 = myForm()
w1.show()
app.exec_()/<code>
上述程序為主頁面的action_start、action_pause、action_exit、action_clear分別添加triggered信號對應的槽函數,槽函數中顯示messagebox做出不同提示。
三、運行
進入文件目錄,輸入python3 run.py,即可彈出上述用QT Designer設計出來的MainWindow頁面。
點擊工具欄中最左邊開始圖片
點擊工具欄中左邊第二個暫停圖片
點擊工具欄中左邊第三個停止圖片
點擊工具欄中最右邊清除圖片
四、結語
(1) 注意菜單欄中”編輯“下拉菜單中開始、暫停、停止、清屏Action和工具欄中的圖片一一對應,都對應同一個triggered的槽函數。
寄語:沒有平白無故的運氣,一切都是長期努力的結果!
閱讀更多 小驛物聯 的文章