PyQt QMenuBar、QMenu和QAction小部件
位于QMainWindow对象的标题栏下方的水平QMenuBar专用于显示QMenu对象。
QMenu类提供了一个可以添加到菜单栏的小部件。它还用于创建上下文菜单和弹出菜单。每个QMenu对象可以包含一个或多个QAction对象或级联的QMenu对象。
要创建弹出菜单,PyQt API提供了createPopupMenu()函数。menuBar()函数返回主窗口的QMenuBar对象。addMenu()函数允许在菜单栏中添加菜单。反过来,可以通过addAction()方法在菜单中添加操作。
下表列出了设计菜单系统时使用的一些重要方法。
下面给出了QMenu最常用的方法。
序号 | 方法和描述 |
---|---|
1 | menuBar() 返回主窗口的 QMenuBar 对象 |
2 | addMenu() 向菜单栏添加一个新的 QMenu 对象 |
3 | addAction() 向 QMenu 控件添加一个由文本或图标组成的操作按钮 |
4 | setEnabled() 设置操作按钮的状态为启用/禁用 |
5 | addSeperator() 在菜单中添加分隔线 |
6 | Clear() 移除菜单/菜单栏的内容 |
7 | setShortcut() 将键盘快捷键与操作按钮关联 |
8 | setText() 为操作按钮指定文本 |
9 | setTitle() 设置 QMenu 控件的标题 |
10 | text() 检索与 QAction 对象关联的文本 |
11 | title() 检索与 QMenu 对象关联的文本 |
QMenu对象在任何QAction按钮被点击时发出triggered()信号。单击的QAction对象的引用传递给连接的槽函数。
示例
在这个示例中,首先将顶级窗口的QMenuBar对象的引用存储起来(该顶级窗口必须是QMainWindow对象)。
通过addMenu()方法将文件菜单添加到菜单栏。
在菜单中的一个动作按钮可以是一个字符串或一个QAction对象。
顶级菜单添加了一个子菜单。
由文件菜单触发的(triggered() signal)与processtrigger()
方法连接,该方法接收引起此信号的QAction对象。
完整代码如下:
上述代码产生以下输出−