PyQt5 之選單欄

Galois發表於2020-03-30

選單欄是非常常用的。是一組命令的集合

「MacOS」下狀態列的顯示不一樣,為了得到最相似的外觀,可以增加一句menubar.setNativeMenuBar(False)

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon

class Example(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        exitAct = QAction(QIcon('exit.png'), '&Exit', self)
        exitAct.setShortcut('Ctrl+Q')
        exitAct.setStatusTip('Exit application')
        exitAct.triggered.connect(qApp.quit)

        self.statusBar()
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAct)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Simple menu')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

這裡建立了只有一個命令的選單欄,這個命令就是終止應用。同時也建立了一個狀態列。而且還能使用快捷鍵Ctrl+Q退出應用。

exitAct = QAction(QIcon('exit.png'), '&Exit', self)        
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('Exit application')

QAction 是選單欄、工具欄或者快捷鍵的動作的組合。前面兩行,我們建立了一個圖示、一個 exit 的標籤和一個快捷鍵組合,都執行了一個動作。第三行,建立了一個狀態列,當滑鼠懸停在選單欄的時候,能顯示當前狀態。

exitAct.triggered.connect(qApp.quit)

當執行這個指定的動作時,就觸發了一個事件。這個事件跟 QApplicationquit() 行為相關聯,所以這個動作就能終止這個應用。

menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAct)

menuBar() 建立選單欄。這裡建立了一個選單欄,並在上面新增了一個 file 選單,並關聯了點選退出應用的事件。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
不要試圖用百米衝刺的方法完成馬拉松比賽。

相關文章