菜單欄QMenuBar

原文鏈接:https://www.baidu.com

介紹

在QMainWindow對象的標題欄下方,水平的QmenuBar被保留QMenu對象。
QMenu類提供了一個key添加到菜單欄的小控件,也用於創建上下文菜單和彈出菜單。每個QMenu對象都可以包含一個或多個QAction對象或級聯的QMenu對象。
要創建一個彈出菜單,PyQt API提供了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.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class MenuDemo(QMainWindow):
	def __init__(self,parent=None):
		super(MenuDemo,self).__init__(parent)
		layout = QHBoxLayout()
		bar = self.menuBar()
		file = bar.addMenu("File")
		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)
		file.triggered[QAction].connect(self.processtrigger)
		self.setLayout(layout)
		self.setWindowTitle("menu例子")
	
	def processtrigger(self,q):
		print(q.text()+" is triggered")
	
if __name__ == "__main__":
	app = QApplication(sys.argv)
	demo = MenuDemo()
	demo.show()
	sys.exit(app.exec_())

展示

菜單欄

後記

發現截圖的時候打不開,打開的時候不能截圖,所以就這樣了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章