基于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中獲取操作系統(tǒng)的進(jìn)程信息
今天小編就為大家分享一篇在Python中獲取操作系統(tǒng)的進(jìn)程信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08使用python生成云詞圖實(shí)現(xiàn)畫紅樓夢(mèng)詞云圖
紅樓夢(mèng)相信大家都看過,今天給大家介紹另一種不用搞得烏漆麻黑的方式來制作紅樓夢(mèng)的詞云圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09python 應(yīng)用之Pycharm 新建模板默認(rèn)添加編碼格式-作者-時(shí)間等信息【推薦】
這篇文章主要介紹了Pycharm 新建模板默認(rèn)添加編碼格式-作者-時(shí)間等信息 ,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06