首頁>科技>

前言

本節我們學習使用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

設計Main Window主頁面如下,選單欄中選單分別為編輯、顯示、工具、幫助,狀態列預設在最下方,可以在下方右鍵選擇Remove Status Bar刪除。

注意選單欄中的選單屬於QMenu類,下拉選單和子選單屬於QAction類

在UI介面下方空白處右鍵選擇Add Toor Bar,將選單欄子選單對應的Action拖動到Tool Bar中,並按照下圖方式為Action新增圖示。

其他Action按照同樣方法操作,最終結果如下圖:

2 將*.ui轉換為ui_action_tool.py

進入run.py目錄,輸入如下命令:

pyuic5 -o ui_action_tool.py action_tool.ui

3 編寫python程式

import sysimport PyQt5.QtWidgets as qwimport 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_()

上述程式為主頁面的action_start、action_pause、action_exit、action_clear分別新增triggered訊號對應的槽函式,槽函式中顯示messagebox做出不同提示。

三、執行

進入檔案目錄,輸入python3 run.py,即可彈出上述用QT Designer設計出來的MainWindow頁面。

四、結語

(1) 注意選單欄中”編輯“下拉選單中開始、暫停、停止、清屏Action和工具欄中的圖片一一對應,都對應同一個triggered的槽函式。

寄語:沒有平白無故的運氣,一切都是長期努力的結果!

296

Qt

Python

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 線上外賣“紅與黑”:美團 餓了麼 口碑外賣 幸福西餅“上榜”