基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能_第1頁
基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能_第2頁
基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能_第3頁
基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能首先,講述要解決的兩個(gè)問題以及解決問題的代碼:

1、將鼠標(biāo)放置于菜單欄上狀態(tài)欄永久消失的問題(這個(gè)問題需要仔細(xì)觀察才能注意到)

#此覆蓋父類函數(shù):覆蓋方法;為了克服將鼠標(biāo)放置于菜單欄上狀態(tài)欄就消失的問題;

defevent(self,QEvent):

ifQEvent.type()==QEvent.StatusTip:

ifQEvent.tip()=="":

QEvent=QStatusTipEvent("ready!")#此處為要始終顯示的內(nèi)容

returnsuper().event(QEvent)

2、控制狀態(tài)欄顯示和隱藏的問題

deftoggleMenu(self,state):#自定義事件函數(shù)

print(state)

#ifstate:

#self.statusBar().showMessage("ready!")

#else:

#self.statusBar().showMessage("")

#ifstate:#控制狀態(tài)欄是否顯示,

#self.statusbar().show()#此處是錯(cuò)誤示例

#else:

#self.statusbar().hide()

ifstate:#應(yīng)該使用statusBar()而不是statusbar

self.statusBar().show()

else:

self.statusBar().hide()

最近學(xué)習(xí)pyqt5教程,也是別人翻譯的,總的也是錯(cuò)誤多多,應(yīng)該直接看原版的,充分表明英語很重要啊

貼上全部代碼:

importsys

fromPyQt5.QtWidgetsimportQMainWindow,QApplication,QAction,qApp,QMenu

fromPyQt5.QtGuiimportQIcon,QStatusTipEvent

classmain_window(QMainWindow):

def__init__(self):

super().__init__()

self.initUI()

definitUI(self):

#可以設(shè)置動作的圖標(biāo),文字顯示;強(qiáng)大

exitAct=QAction(QIcon("/Users/zuozhe/PycharmProjects/Soft-Video/images/m4.png"),"退出",self)

exitAct.setShortcut("Ctrl+Q")#設(shè)置快捷鍵

exitAct.setToolTip("ExitApplication")#提示

exitAct.triggered.connect(qApp.exit)#綁定退出事件

status=self.statusBar()#創(chuàng)建狀態(tài)欄

status.showMessage("ready!")#顯示消息

#菜單欄

#文件菜單欄

menubar=self.menuBar()

menubar.setNativeMenuBar(False)#MACOS下需要設(shè)置此句話

fileMenu=menubar.addMenu("File")#主菜單File

impMenu=QMenu("Import",self)#創(chuàng)建菜單項(xiàng)

impAct=QAction("ImportEmail",self)#Import菜單下有子菜單ImportEmail

impMenu.addAction(impAct)

newAct=QAction("New",self)

#就差給Action(動作)綁定觸發(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("Viewstatusbar")

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)欄就消失的問題;

defevent(self,QEvent):

ifQEvent.type()==QEvent.StatusTip:

ifQEvent.tip()=="":

QEvent=QStatusTipEvent("ready!")#此處為要始終顯示的內(nèi)容

returnsuper().event(QEvent)

deftoggleMenu(self,state):#自定義事件函數(shù)

print(state)

#ifstate:

#self.statusBar().showMessage("ready!")

#else:

#self.statusBar().showMessage("")

#ifstate:#控制狀態(tài)欄是否顯示,

#self.statusbar().show()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論