基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能
首先,講述要解決的兩個(gè)問題以及解決問題的代碼:
1、將鼠標(biāo)放置于菜單欄上狀態(tài)欄永久消失的問題(這個(gè)問題需要仔細(xì)觀察才能注意到)
# 此覆蓋父類函數(shù): 覆蓋方法; 為了克服 將鼠標(biāo)放置于菜單欄上 狀態(tài)欄就消失的問題;
def event(self, QEvent):
if QEvent.type() == QEvent.StatusTip:
if QEvent.tip() == "":
QEvent = QStatusTipEvent("ready!") # 此處為要始終顯示的內(nèi)容
return super().event(QEvent)
2、控制狀態(tài)欄顯示和隱藏的問題
def toggleMenu(self, state): # 自定義事件函數(shù)
print(state)
# if state:
# self.statusBar().showMessage("ready!")
# else:
# self.statusBar().showMessage("")
# if state: # 控制狀態(tài)欄是否顯示,
# self.statusbar().show() # 此處是錯(cuò)誤示例
# else:
# self.statusbar().hide()
if state: # 應(yīng)該使用statusBar() 而不是 statusbar
self.statusBar().show()
else:
self.statusBar().hide()最近學(xué)習(xí)pyqt5教程,也是別人翻譯的,總的也是錯(cuò)誤多多,應(yīng)該直接看原版的,充分表明英語很重要啊……
貼上全部代碼:
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction, qApp, QMenu
from PyQt5.QtGui import QIcon, QStatusTipEvent
class main_window(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 可以設(shè)置 動(dòng)作的圖標(biāo), 文字顯示; 強(qiáng)大
exitAct = QAction(QIcon("/Users/zuozhe/PycharmProjects/Soft-Video/images/m4.png"), "&退出", self)
exitAct.setShortcut("Ctrl+Q") # 設(shè)置快捷鍵
exitAct.setToolTip("Exit Application") # 提示
exitAct.triggered.connect(qApp.exit) # 綁定退出事件
status = self.statusBar() # 創(chuàng)建狀態(tài)欄
status.showMessage("ready!") # 顯示消息
# 菜單欄
# 文件菜單欄
menubar = self.menuBar()
menubar.setNativeMenuBar(False) # MAC OS 下需要設(shè)置此句話
fileMenu = menubar.addMenu("&File") # 主菜單File
impMenu = QMenu("Import", self) # 創(chuàng)建菜單項(xiàng)
impAct = QAction("Import Email", self) # Import菜單下有子菜單 Import Email
impMenu.addAction(impAct)
newAct = QAction("New", self)
# 就差 給 Action(動(dòng)作)綁定觸發(fā)事件了
fileMenu.addAction(newAct) # 將兩個(gè)菜單項(xiàng)加入到 File主菜單欄下
fileMenu.addMenu(impMenu)
fileMenu.addAction(exitAct) # 綁定 File下的菜單項(xiàng)
# 編輯菜單欄
editMenu = menubar.addMenu("&Edit")
# 視圖菜單欄
viewMenu = menubar.addMenu("&View")
# 勾選菜單
viewstatAct = QAction("是否顯示狀態(tài)欄", self, checkable=True)
viewstatAct.setToolTip("View statusbar")
viewstatAct.setChecked(True)
viewstatAct.triggered.connect(self.toggleMenu) # 觸發(fā)鏈接事件; toggleMenu是自定義函數(shù)
viewMenu.addAction(viewstatAct)
# 設(shè)置窗口的 位置和大小
self.setGeometry(300, 300, 500, 600)
self.setWindowTitle("主窗口的菜單欄和工具欄")
self.show()
# 此覆蓋父類函數(shù): 覆蓋方法; 為了克服 將鼠標(biāo)放置于菜單欄上 狀態(tài)欄就消失的問題;
def event(self, QEvent):
if QEvent.type() == QEvent.StatusTip:
if QEvent.tip() == "":
QEvent = QStatusTipEvent("ready!") # 此處為要始終顯示的內(nèi)容
return super().event(QEvent)
def toggleMenu(self, state): # 自定義事件函數(shù)
print(state)
# if state:
# self.statusBar().showMessage("ready!")
# else:
# self.statusBar().showMessage("")
# if state: # 控制狀態(tài)欄是否顯示,
# self.statusbar().show()
# else:
# self.statusbar().hide()
if state: # 應(yīng)該使用statusBar() 而不是 statusbar
self.statusBar().show()
else:
self.statusBar().hide()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = main_window()
sys.exit(app.exec_())
到此這篇關(guān)于基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能的文章就介紹到這了,更多相關(guān)PyQt5狀態(tài)欄顯示 隱藏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 根據(jù)數(shù)據(jù)模板創(chuàng)建shapefile的實(shí)現(xiàn)
今天小編就為大家分享一篇Python 根據(jù)數(shù)據(jù)模板創(chuàng)建shapefile的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
精心整理總結(jié)的Python自動(dòng)化測(cè)試面試題
簡單來說,自動(dòng)化測(cè)試框架包含了所有的測(cè)試工作所需的測(cè)試框架,下面這篇文章主要給大家介紹了關(guān)于Python自動(dòng)化測(cè)試面試題的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
python實(shí)現(xiàn)簡單的udp發(fā)送和接收
這篇文章主要介紹了python實(shí)現(xiàn)簡單的udp發(fā)送和接收方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)實(shí)例探究
這篇文章主要為大家介紹了Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
解決TensorFlow訓(xùn)練內(nèi)存不斷增長,進(jìn)程被殺死問題
今天小編就為大家分享一篇解決TensorFlow訓(xùn)練內(nèi)存不斷增長,進(jìn)程被殺死問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
使用opencv-python如何打開USB或者筆記本前置攝像頭
這篇文章主要介紹了使用opencv-python如何打開USB或者筆記本前置攝像頭的過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06

