QMenuBar,QMenu和qaction(qmenubar,QMenu QAction ) )。
位于QMainWindow对象标题栏正下方的水平QMenuBar被保留用于显示QMenu对象。
QMenu类具有可以添加到菜单栏中的小部件。 也用于创建上下文菜单和弹出菜单。 每个QMenu对象可以包含一个或多个QAction对象或级联QMenu对象。
为了创建弹出菜单,PyQt API提供了createPopupMenu ()函数。 menuBar ()函数返回主窗口中的QMenuBar对象。 addMenu ) )函数向栏中添加菜单。 相反,使用addAction ()方法将操作添加到菜单中。
下表介绍了设计菜单系统时使用的重要方法。 以下是QMenu最常见的方法。
Sr.No .方法和说明
1menuBar () )
返回到主窗口中的QMenuBar对象
2addMenu () )
将新的QMenu对象添加到菜单栏中
3添加() )
q将包含文本或图标的操作按钮添加到QMenu小部件中
4已启用() )
将状态操作按钮设置为有效/无效
5添加选择器() )
在菜单中添加分隔线
6Clear () )
删除菜单/菜单栏的内容
7设置shortcut ()。
将键盘快捷键与操作按钮相关联
8setText ()
将文本分配给操作按钮
9设置() )
q设置QMenu小部件的标题
10文本() )。
q获取与操作对象相关联的文本
11title () )
获取与QMenu对象相关联的文本
单击其中一个QAction按钮时,QMenu对象发出触发()信号。 对所单击的QAction对象的引用将传递到连接的插槽功能。
示例(Example ) )。
在本示例中,首先存储对顶层窗口中必须是QMainWindow对象的QMenuBar对象的所有引用。 bar=self.menuBar (
addMenu ) )方法添加到菜单栏中。 file=bar.addmenu('file ' ) )。
菜单上的动作按钮可以是字符串或QAction对象。 file.addaction('new ' )。
save=qaction('save ',self ) )。
ave.setshortcut('ctrls ' ) )。
是file.addaction(save )
子菜单将添加到主菜单中。 edit=file.addmenu(edit ) )。
编辑.添加(复制) )。
编辑. addaction (paste ) )。
从文件菜单发送的triggered ()信号连接到接收触发信号的QAction对象的processtrigger ) )方法。 file.triggered [ q action ].connect (self.process trigger )。
完整的代码如下-导入系统
from pyqt4. Qt core导入*
from pyqt4. Qt GUI导入*
classmenudemo(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 ) )。
ave.setshortcut('ctrls ' ) )。
是file.addaction(save )
edit=file.addmenu(edit ) )。
编辑.添加(复制) )。
编辑. addaction (paste ) )。
quit=qaction('quit ',self ) )。
file.addaction(quit ) )
file.triggered [ q action ].connect (self.process trigger )。
自.设置布局(布局)。
self.setwindowtitle('menudemo ) )。
defprocesstrigger (自,q ) :
printq.text ((is触发) )。
defmain(: )
高速APP=qapplication (sys.argv ) )。
ex=menudemo ()
ex.show () )
sys.exit(app.exec_ ) )
if __name__=='__main__':
主() )
上面的代码生成以下输出-