[PyQt5] menu 選單

使用 pyqt5 寫 python 視窗程式時,menu 選單是最基本常用的功能, 以下介紹如何在 pyqt5 的一個視窗裡新增 menu 選單。

基本範例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget,
QPushButton, QAction, QMessageBox)
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QCoreApplication

class MyMainWindow(QMainWindow):

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

def initUI(self):
self.setWindowTitle('Menu example')
self.setGeometry(300, 300, 300, 200)

# main menu
mainMenu = self.menuBar()

# file menu
fileMenu = mainMenu.addMenu('File')

openButton = QAction('Open', self)
openButton.triggered.connect(self.onOpenFile)
fileMenu.addAction(openButton)

exitButton = QAction('Exit', self)
exitButton.setShortcut('Ctrl+Q')
exitButton.triggered.connect(self.close)
fileMenu.addAction(exitButton)

# help menu
helpMenu = mainMenu.addMenu('Help')
aboutButton = QAction('About', self)
aboutButton.triggered.connect(self.onAbout)
helpMenu.addAction(aboutButton)

aboutQtButton = QAction('AboutQt', self)
aboutQtButton.triggered.connect(self.onAboutQt)
helpMenu.addAction(aboutQtButton)

self.show()

def onOpenFile(self):
QMessageBox.information(self, 'Info', 'Open file ...')

def onAbout(self):
QMessageBox.about(self, 'About', 'This is about message.')

def onAboutQt(self):
QMessageBox.aboutQt(self)

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

結果如下圖: