新如何在PyQt中自定義菜單欄和工具欄
創(chuàng)建狀態(tài)欄控件 首先,通過QMainWindow創(chuàng)建狀態(tài)欄控件,可以使用QtGui.QMainWindow的statusBar()方法來實現(xiàn)。第一次調用該方法會創(chuàng)建一個狀態(tài)欄對象,之后的調用都會返回
創(chuàng)建狀態(tài)欄控件
首先,通過QMainWindow創(chuàng)建狀態(tài)欄控件,可以使用QtGui.QMainWindow的statusBar()方法來實現(xiàn)。第一次調用該方法會創(chuàng)建一個狀態(tài)欄對象,之后的調用都會返回這個狀態(tài)欄對象。使用showMessage()方法可以在狀態(tài)欄展示消息。
定制菜單欄
菜單欄是GUI程序的標配,是一組位于不同菜單內的命令集合。為了在Mac系統(tǒng)中得到一致的結果,可以添加(False)這行代碼??梢詣?chuàng)建帶有菜單的菜單欄,其中包含各種動作。通過設置快捷鍵Ctrl Q,可以觸發(fā)特定動作。
添加動作至菜單欄
QAction代表菜單欄、工具欄或自定義快捷鍵中可執(zhí)行的動作。通過代碼創(chuàng)建具有特定圖標和標簽“Exit”的動作,并設定快捷鍵。同時為動作設置狀態(tài)提示,在鼠標懸停時顯示在狀態(tài)欄上。
連接動作與信號
點擊動作時會發(fā)出triggered信號,可以將此信號連接到QApplication的quit()方法,以實現(xiàn)程序停止功能。通過menuBar()方法創(chuàng)建菜單欄并添加exitAction,為應用程序命令分組提供便利方式。
創(chuàng)建工具欄
工具欄為常用命令提供快速訪問方式,類似菜單欄,創(chuàng)建一個簡單的工具欄并添加退出動作。當觸發(fā)退出動作時,程序將退出。與菜單欄示例相似,也要創(chuàng)建QAction對象,并將其與QtGui.QMainWindow的quit()方法連接。
構建傳統(tǒng)GUI程序
最后,創(chuàng)建一個具有菜單欄、工具欄和狀態(tài)欄的傳統(tǒng)GUI程序。在中心部件中放置一個TextEdit控件,將其設置為QMainWindow的中心控件,占用所有剩余空間。