對于一個 GUI 應用來說,菜單欄是很常見的,它能夠滿足一些最基本的操作需求。本文由Cescfangs 譯自ZetCode pyqt5系列教程 并作適當修改。
import sys
from PyQt5.QtWidgets import qApp, QAction, QApplication, QMainWindow
from PyQt5.QtGui import QIcon
class exp(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.statusBar()
exitAction = QAction(QIcon('heart256.ico'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit app')
exitAction.triggered.connect(qApp.quit)
menubar = self.menuBar()
fileMenu = menubar.addMenu('&file')
fileMenu.addAction(exitAction)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('menubar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = exp()
sys.exit(app.exec_())
通過上面的代碼,我們在菜單欄上創建了一個退出的菜單,同時還附帶創建了一個狀態欄,并設置了ctrl+Q
的快捷鍵。
exitAction = QAction(QIcon('heart256.ico'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit app')
QAction
是一個抽象基類,可以通過菜單欄、工具欄或者快捷鍵實現。上面的三行代碼,我們創建了一個帶有圖標和'Exit'的菜單,同時我們還設置了執行這個命令的快捷鍵以及鼠標懸到這個菜單上時的提示信息。
exitAction.triggered.connect(qApp.quit)
當我們執行這個動作時,會發射一個triggered
信號,這個信號和quit()
連接,這個應用也就終止了。
menubar = self.menuBar()
fileMenu = menubar.addMenu('&file')
fileMenu.addAction(exitAction)
最后創建這個菜單欄,上面附加了一個名為'file'的菜單,然后把我們之前創建的exitAction
添加到'file'這個菜單里。
菜單欄
Exit