介绍
在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_())
展示
后记
发现截图的时候打不开,打开的时候不能截图,所以就这样了。