【pyqt5學習】——菜單欄(QMenu())、工具欄QToolBar學習

目錄

1、菜單欄(QMenu())——一般在窗口頂部

1)創建菜單欄步驟

2)信號與方法

3)實操

?2、工具欄——一般在菜單欄下方

1)創建步驟

2)方法與信號

信號:

方法:

?3)實操示例

3、狀態欄QStateBar——用于顯示狀態信息,一般在窗口底部

1)使用步驟

2)以菜單欄點擊動作觸發狀態欄為例

??編輯


1、菜單欄(QMenu())——一般在窗口頂部

1)創建菜單欄步驟

菜單欄只有在窗口類型為QMainwindow才有,具體步驟為:

1)獲取窗口菜單欄

2)給菜單欄添加條目

3)創建新的動作

4)將新的動作添加到對應的條目下

		# 獲取菜單欄bar = self.menuBar()# 往菜單欄添加菜單項目file = bar.addMenu("文件")# 給菜單項目添加子菜單new = file.addAction("新建")save = file.addAction("保存")

2)信號與方法

信號:主要有菜單欄上的動作觸發信號triggled()

方法:給動作添加快捷鍵(setShortcut("CTRL+S"))等。

3)實操

from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtCore import QDateTime,QDate,QTime
import sysclass QMenuDemo(QMainWindow):def __init__(self):super(QMenuDemo, self).__init__()# 獲取菜單欄bar = self.menuBar()# 往菜單欄添加菜單項目file = bar.addMenu("文件")# 給菜單項目添加子菜單new = file.addAction("新建")save = file.addAction("保存")save.setShortcut("CTRL+S") # 設置快捷鍵save.triggered.connect(self.saveActionSlot)def saveActionSlot(self):print(self.sender().text())if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QMenuDemo()mainWin.show()sys.exit(app.exec_())

?2、工具欄——一般在菜單欄下方

1)創建步驟

1)創建一個工具欄

2)為工具欄添加動作

		# 添加工具欄toolBar = self.addToolBar("File")# 創建新的動作,添加到工具欄new = QAction(QIcon('icon.jpg'),"new",self)save = QAction(QIcon("icon.jpg"),"save",self)toolBar.addAction(new)toolBar.addAction(save)

2)方法與信號

信號:

1)動作觸發信號,和菜單欄一樣action.triggered();

2)工具欄上有動作被觸發信號toolBar.actionTriggered

方法:

1)給動作添加快捷鍵(setShortcut());

2)設置工具欄上的動作顯示模式:

①只顯示圖標——toolBar.setToolButtonStyle(Qt.ToolButtonTextOnly)

②只顯示文本——toolBar.setToolButtonStyle(Qt.ToolButtonTextOnly)

③圖標文本都顯示

文本顯示在圖標下面——toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

文本顯示在圖標旁邊——toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

?

注:一個工具欄上所有的動作顯示模式都是一樣的,如果需要顯示模式不一樣,則可以通過創建多個工具欄,然后分別對不同工具欄設置不同的顯示模式

?3)實操示例

from PyQt5.QtWidgets import QMainWindow,QApplication,QAction
from PyQt5.QtCore import QDateTime,QDate,QTime,Qt
from PyQt5.QtGui import QIcon
import sysclass QToolBarDemo(QMainWindow):def __init__(self):super(QToolBarDemo, self).__init__()# 添加工具欄toolBar = self.addToolBar("File")# 創建新的動作,添加到工具欄new = QAction(QIcon('icon.jpg'),"new",self)save = QAction(QIcon("icon.jpg"),"save",self)edit = QAction(QIcon("icon.jpg"),"edit",self)toolBar.addAction(new)toolBar.addAction(save)toolBar.addAction(edit)toolBar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)toolBar.actionTriggered.connect(self.showAction) # 工具欄上的動作被觸發的信號,自動傳回觸發的動作對象self.setWindowTitle("工具欄演示")def showAction(self,a):print(a.text())if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QToolBarDemo()mainWin.show()sys.exit(app.exec_())

3、狀態欄QStateBar——用于顯示狀態信息,一般在窗口底部

1)使用步驟

1)先創建一個狀態欄

self.statuBar = QStatusBar()

2)然后將狀態欄設置到窗口

self.setStatusBar(self.statuBar)

3)將需要顯示的信息顯示在窗口

self.statuBar.showMessage(self.sender().text(), 5000)

2)以菜單欄點擊動作觸發狀態欄為例

from PyQt5.QtWidgets import QMainWindow,QApplication,QStatusBar
from PyQt5.QtCore import QDateTime,QDate,QTime
import sysclass StatusBarDemo(QMainWindow):def __init__(self):super(StatusBarDemo, self).__init__()# 獲取菜單欄bar = self.menuBar()# 往菜單欄添加菜單項目file = bar.addMenu("狀態欄演示")# 給菜單項目添加子菜單new = file.addAction("顯示狀態欄")file.triggered.connect(self.showStatu) # 給菜單欄條目設置觸發,會自動將觸發的動作名稱傳給槽函數new.triggered.connect(self.showAction) # 給菜單欄動作設置觸發,不會自動將觸發的動作名稱傳給槽函數# 創建一個狀態欄self.statuBar = QStatusBar()# 給窗口設置狀態欄self.setStatusBar(self.statuBar)def showStatu(self,a):# 將消息顯示在狀態欄上5sself.statuBar.showMessage(a.text(),5000)def showAction(self):self.statuBar.showMessage(self.sender().text(), 5000)if __name__ == '__main__':app = QApplication(sys.argv)mainWin = StatusBarDemo()mainWin.show()sys.exit(app.exec_())

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255355.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java核心技術及面試指南 異常部分的面試題歸納以及答案

4.2.4.1 throw和throws有什么差別?異常(Exception)和錯誤(Error)有什么差別? throw語句表示拋出異常,由方法體內的語句處理。throws語句用在方法聲明后面,表示如果拋出異常&#xff…

win7win10 配置wlan熱點

win7 & win10 系統自帶wlan功能,配置方法如下: 命令行輸入: 1. netsh wlan set hostednetwork mode allow ssid "Haha" key12345678 2. netsh wlan start hostednetwork netsh wlan show hostednetwork 轉載于:https://www.cnblogs.com/…

java---Socket編程出現的異常種類

.java.net.SocketTimeoutException.這個異常比較常見,socket超時。一般有2個地方會拋出這個,一個是connect的時候,這個超時參數由connect(SocketAddress endpoint,int timeout)中的后者來決定,還有就是setSoTimeout(int timeout)&…

【pyqt5學習】——利用Pyqt5連接打印機(QtPrintSupport、QPrintDialog、QPageSetupDialog)

目錄 1、利用QtPrintSupport直接連接打印機——不常用 1)基本知識 2)完整代碼案例 3)結果 2、 打印對話框QPrintDialog、打印設置對話框QPageSetupDialog 1)彈出打印設置對話框 2)彈出打印對話框 注&#xff1a…

Val編程-按鍵響應模式

由于Val是通過語句gotoxy函數來進行光標移動的,不支持觸摸屏與鼠標,因此對于其界面編程有很大的局限。 一般有下面幾種模式來進行編程。 1.按鍵響應模式(中斷模式) 2.輪詢模式 一般推薦使用按鍵響應模式。其原理是對于有按鍵按下…

[Android]SQLite的使用

Android 數據存儲提供了四種存儲方式: Shared Preferences 使用鍵值對(Map(key, value))來存儲數據 Internal Storage 內部存儲,存儲在設備內存的 私人數據 External Storage 外部存儲,存儲在外部設備的 公共數據…

第一百四十五節,JavaScript,同步動畫

JavaScript,同步動畫 將上一節的,移動透明動畫,修改成可以支持同步動畫,也就是可以給這個動畫方法多個動畫任務,讓它同時完成 原理: 向方法里添加一個屬性,這個屬性是一個對象,同步動…

Exchange Server 2016管理系列課件39.新建本地移動請求

場景通過新建本地移動請求,可以很方便的將用戶郵箱從一個數據庫遷移到另外一個數據庫。1)跨平臺郵件遷移;(低exchange遷移到高版本exchange)2)數據庫平衡與優化;(企業當中&#xff0…

【數據庫學習】——【匯總】MySQL數據庫下載與安裝(Msi文件安裝和免安裝版本)、Navicat下載與安裝

目錄 1、MySQL數據庫下載與安裝 1)MySQL數據庫下載 MySQL官網 MySQL數據庫下載 2)MySQL 通過msi文件安裝 3)MySQL免安裝版本使用 1)將免安裝包移動到安裝的文件夾位置; 2)新建data文件夾 3&#xff…

Val編程-文本操作

Val系統相對于高級語言來說,對于文本操作的功能相當的弱。 一般的文本(文件夾)操作有: 1.新建文本, 2.刪除文本, 3.新建文件夾, 4.刪除文件夾, 5.文本重命名, 6.文…

Linux高級編程--01.vi命令

VI是Linux/Unix下標配的一個純字符界面的文本編輯器。由于不支持鼠標功能,也沒有圖形界面,相關的操作都要通過鍵盤指令來完成,需要記憶大量命令。因此很多人不大喜歡它,但同時由于鍵盤的方式往往比鼠標來得快,一旦熟練…

【數據庫學習】——糾錯:mysql Authentication plugin ‘caching_sha2_password‘ is not supported

目錄 1、環境介紹 2、問題描述 3、原因分析 4、 解決方案 1)方法一:直接改成mysql_native_password驗證方式 2)方案二: 利用sql命令將驗證機制修改 ① 打開命令行窗口——cmd ② 登錄mysql數據庫 ③ 查看不同用戶名的身份…

xcode中用pods管理第三方庫轉

安裝pods :http://www.cnblogs.com/wangluochong/p/5567082.html 史上最詳細的CocoaPods安裝教程 --------------------------------------------- 第一步:Cmmand+空格,搜索"終端",使用cd命令進入到我們項目…

Val編程-界面編程

由于示教盒是一個黑白的分辨率為(14*40)的液晶屏,用戶交互不是很好,界面不友好。而且沒有鼠標導航與觸摸屏。 界面編程函數 1.void cls() 2.void title(string sText) 3.void put(string sText), void put(num nValue) 4.void put…

【機器學習筆記四】分類算法 - 邏輯回歸

參考資料 【1】 Spark MLlib 機器學習實踐 【2】 統計學習方法 1、Logistic分布 設X是連續隨機變量,X服從Logistic分布是指X具有下列分布函數和密度函數 ,。其中u為位置參數,γ為形狀參數。如下圖: 分布函數以(u,1/2)為中心…

FPFH+ICP點云配準

A, UniformSampling降噪B, ISS計算關鍵點, FPFH特征在FeatureCloud::setInputCloud中讀入點云,并調用processInput進行處理:processInput處理包括: 1, computeSurfaceNormals () 使用NormalEstimation計算得到表面法向量2, computeLocalFeatures () FPFHEstimationKdTreeIS…

【python 學習】——pycharm終端解釋器和Python解釋器配置

目錄 1、pycharm終端運行的時候前面帶有PS,是什么意思,怎么變成cmd? 1)File——settings 2)tools——terminal——shellPath 2、pycharm怎么切換不同的Python解釋器? 1)File——settings 2&#xff09…

在linux下實現mysql自動備份數據

使用的系統為CentOS,mysql版本為5.6 備份功能主要利用以下功能實現: mysql命令中的mysqldump命令 linux下腳本編寫 linux下crontab定時任務的使用 首先確定你要存放腳本的目錄和存放備份數據的目錄 首先進行以下修改(因為在命令行或者腳本中寫…

面向未來編程

我們一直以來都知道面向對象編程,面向過程編程。大多數時候還是面向工資編程,面向生活編程。面向任務編程,面向公司編程,面向領導編程。 工資不給力,心里認為委屈;生活有壓力。影響工作情緒。任務完畢就好…

Plotclock

調試程序,運行調試程序,舵機會移動兩只懸臂分別停留在一只水平另一只垂直的位置上。如果差距非常大,可拆下懸臂調節,如果比較接近了,就修改程序第3~6行的四個參數 SERVOFAKTORLEFT 左懸臂垂直位置,SERVOFAK…