- class QMenuBar#
QMenuBar
类提供水平菜单栏。更多…概要#
属性#
defaultUpᅟ
- 弹出方向的默认选项nativeMenuBarᅟ
- 是否在支持此功能的平台上使用菜单栏作为原生态菜单栏
方法#
def
__init__()
def
actionAt()
def
actionGeometry()
def
activeAction()
def
addMenu()
def
addSeparator()
定义
clear()
定义
insertMenu()
虚拟方法#
信号#
定义
hovered()
定义
triggered()
注意
此文档可能包含自动从C++转换为Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您在翻译中发现问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单的方式告诉我们。
详细描述#
警告
本节包含自动从C++转换为Python的代码片段,可能包含错误。
菜单栏由一系列下拉菜单项组成。您可以使用
addMenu()
方法添加菜单项。例如,假设menubar
是指向一个QMenuBar
的指针,fileMenu
是指向一个QMenu
的指针,则以下语句将菜单插入到菜单栏中:menubar.addMenu(fileMenu)
菜单项文本中的叹号将Alt+F设置为此菜单的快捷键。(您可以通过“&&”在菜单栏中获取真正的叹号。)
不需要布局菜单栏。它将自动将自身的几何形状设置为父小部件的顶部,并根据父小部件的尺寸变化适当调整。
用法#
在大多数主窗口风格的程序中,您会在
menuBar()
函数中使用,该函数在QMainWindow
中提供,向菜单栏添加QMenu
,并将 QActions 添加到弹出菜单中。示例(来自 菜单 示例)
fileMenu = menuBar().addMenu(tr("File")) fileMenu.addAction(newAct)
可以使用
removeAction()
移除菜单项。可以通过使用
QWidgetAction
类的实例来将小部件添加到菜单中。然后可以通过通常的方式将这些操作插入到菜单中;有关更多详细信息,请参阅QMenu
文档。平台依赖的样式和感觉#
不同的平台对菜单栏的外观及其与用户交互时的行为有不同的需求。例如,Windows系统通常配置为仅在按下Alt键时才显示菜单栏中项的键盘快捷键的带下划线的字符。
示例
菜单示例 显示了如何使用
QMenuBar
和QMenu
。其他 主窗口应用程序示例 也使用这些类提供了菜单。另请参阅
注意
当使用
from __feature__ import true_property
时,可以直接使用属性,否则可通过访问器函数使用。- 属性 defaultUpᅟ: bool#
此属性保存弹出方向。
默认的弹出方向。默认情况下,菜单在屏幕“向下”弹出。将属性设置为 true,菜单将向上弹出。您可能希望对此类位于所引用文档“下面”的菜单调用此属性。
如果菜单无法适应屏幕,则自动使用其他方向。
- 属性 nativeMenuBarᅟ: bool#
此属性保存菜单栏是否用作支持的平台上的本地菜单栏。
此属性指定是否应将菜单栏用作支持的平台上的原生菜单栏。当前支持的平台包括 macOS 和使用 com.canonical.dbusmenu D-Bus 接口的 Linux 桌面(例如 Ubuntu Unity)。如果此属性值为
true
,则菜单栏用于原生菜单栏,不在其父窗口中;如果值为false
,则菜单栏保留在窗口中。在其他平台,设置此属性没有效果,读取此属性将始终返回false
。默认情况下,是否遵循 Qt::AA_DontUseNativeMenuBar 属性对应用程序的设置。显式设置此属性将覆盖属性的存在(或不存在)。
通过父对象
parent
构造菜单栏。在
pt
处返回 QAction。如果没有在pt
处找到动作或位置有分隔符,则返回None
。以 QRect 形式返回动作
act
的几何形状。另请参阅
如果当前有任何高亮的 QAction,则返回该 QAction;否则返回
None
。另请参阅
将
menu
添加到菜单栏。返回菜单的 menuAction()。菜单栏不拥有该菜单。将带有
icon
和title
的新QMenu
添加到菜单栏。菜单栏将拥有该菜单。返回新的菜单。另请参阅
- addMenu(title)
- 参数:
title – 字符串
- 返回类型:
将带有
title
的新QMenu
添加到菜单栏。菜单栏将拥有该菜单。返回新的菜单。另请参阅
将分隔符添加到菜单。
- clear()#
从菜单栏中移除所有操作。
注意
在 macOS 上,已被合并到系统菜单栏的菜单项不会被此函数移除。一种处理方法是自行移除多余的菜单项。你可以设置不同菜单的菜单角色,这样你可以提前知道哪些菜单项会被合并,哪些不会。然后决定是重新创建还是删除。
另请参阅
返回第一个菜单项的左侧或最后一个菜单项的右侧的部件,具体取决于
corner
。当菜单操作被高亮时,会发出此信号;
action
是导致事件发出的操作。通常用于更新状态信息。
另请参阅
- initStyleOption(option, action)
- 参数:
option –
QStyleOptionMenuItem
action –
QAction
使用菜单栏的值和信息从
action
初始化option
。当子类需要QStyleOptionMenuItem
并且不想自行填充所有信息时,此方法非常有用。此便利函数在 action
before
之前插入menu
并返回菜单的菜单动作。另请参阅
此便利函数创建一个新分隔符动作,即一个返回 true 的 QAction::isSeparator() 的动作。函数将创建的 action 插入到此菜单栏的动作列表中
before
之前,并返回它。属性
defaultUp
的获取器。属性
nativeMenuBar
的获取器。设置当前高亮显示的操作为
act
。另请参阅
此操作会将指定的
widget
显示为第一个菜单项的左侧,或者根据corner
在最后一个菜单项的右侧。菜单栏将获得该
widget
的所有权,将其重新父化到菜单栏中。然而,如果corner
已经包含了一个小部件,那么之前的小部件将不再由菜单栏管理,并且仍将是可见的子项。- setDefaultUp(arg__1)#
- 参数:
arg__1 – bool
另请参阅
属性
defaultUpᅟ
的设置器。- setNativeMenuBar(nativeMenuBar)#
- 参数:
nativeMenuBar – bool
另请参阅
属性
nativeMenuBarᅟ
的设置器。当鼠标点击触发属于该菜单栏的菜单中的操作时,会发出该信号;
action
是引起信号发出的操作。通常,您会使用QAction::triggered()将每个菜单操作连接到一个槽,但有时您会希望将几个项连接到单个槽(常见于用户从数组中选择)。在这种情况下,该信号非常有用。
另请参阅