QMenuBar在QMainWindow對象的標題欄下方,水平的QMenuBar被保留顯示QMenu對象
QMenuBar類提供了一個可以包含一個或多個QAction對象或 級聯的QMenu對象,要創建一個彈出菜單,Pyqt提供了createPopupMenu()函數,menuBar()函數用于返回主窗口的QMenuBar對象:addMenu()函數可以將菜單添加到菜單欄中,通過addAction()函數可以在菜單中進行添加操作
| 方法 | 描述 |
|---|---|
| menuBar() | 返回主窗口的QMenuBar對象 |
| addMenu() | 在菜單欄中添加一個新的QMenu對象 |
| addAction() | 向QMenu小控件中添加一個操作按鈕,其中包含文本或圖標 |
| setEnabled() | 將操作按鈕設置為啟用/禁用 |
| addSeperator() | 在菜單中添加一條分割線 |
| clear() | 刪除菜單欄的內容 |
| setShortcut() | 將快捷鍵關聯到操作按鈕 |
| setText() | 設置菜單項的文本 |
| setTitle() | 設置QMenu小控件的標題 |
| text() | 返回與QACtion對象關聯的文本 |
| title() | 返回QMenu小控件的標題 |
單擊任何QAction按鈕時,QMenu對象都會發射triggered信號
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class MenuDemo(QMainWindow):
def __init__(self,parent=None):
super(MenuDemo, self).__init__(parent)
#水平布局
layout=QHBoxLayout()
#實例化主窗口的QMenuBar對象
bar=self.menuBar()
#向菜單欄中添加新的QMenu對象,父菜單
file=bar.addMenu('File')
#向QMenu小控件中添加按鈕,子菜單
file.addAction('New')
#定義響應小控件按鈕,并設置快捷鍵關聯到操作按鈕,添加到父菜單下
save=QAction('Save',self)
save.setShortcut('Ctrl+S')
file.addAction(save)
#創建新的子菜單項,并添加孫菜單
edit=file.addMenu('Edit')
edit.addAction('Copy')
edit.addAction('Paste')
#添加父菜單下
quit=QAction('Quit',self)
file.addAction(quit)
#單擊任何Qmenu對象,都會發射信號,綁定槽函數
file.triggered[QAction].connect(self.processtrigger)
#設置布局及標題
self.setLayout(layout)
self.setWindowTitle('menu例子')
def processtrigger(self,q):
#輸出那個Qmenu對象被點擊
print(q.text()+'is triggeres')
if __name__ == '__main__':
app=QApplication(sys.argv)
demo=MenuDemo()
demo.show()
sys.exit(app.exec_())
運行程序,顯示效果如圖

在這個例子中,頂層窗口必須是QMainWindow對象,才可以引用QMenuBar對象
通過addMenu()方法將‘File'菜單添加到菜單欄
bar=self.menuBar()
#向菜單欄中添加新的QMenu對象,父菜單
file=bar.addMenu('File')
菜單欄中的操作按鈕可以是字符串或QAction對象
file.addAction('New')
#定義響應小控件按鈕,并設置快捷鍵關聯到操作按鈕,添加到父菜單下
save=QAction('Save',self)
save.setShortcut('Ctrl+S')
file.addAction(save)
將子菜單添加到頂級菜單中
edit=file.addMenu('Edit')
edit.addAction('Copy')
edit.addAction('Paste')
菜單發射triggered信號,將信號連接到槽函數processtrigger()該函數接受信號的QAction對象
file.triggered[QAction].connect(self.processtrigger)
本文詳細講解了PyQt5菜單欄控件QMenuBar的使用方法與實例,更多關于PyQt5菜單欄控件的使用知識請查看下面的相關鏈接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。