QMenu Class Reference
[QtGui module]
菜单QMenu类提供了一个菜单部件在菜单栏,上下文菜单,和其他弹出菜单中使用。More…
继承QWidget。
Methods
__init__ (self, QWidget parent = None)
__init__ (self, QString title, QWidget parent = None)
QAction actionAt (self, QPoint)
actionEvent (self, QActionEvent)
QRect actionGeometry (self, QAction)
QAction activeAction (self)
addAction (self, QAction action)
QAction addAction (self, QString text)
QAction addAction (self, QIcon icon, QString text)
QAction addAction (self, QString text, QObject receiver, SLOT()SLOT() member, QKeySequence shortcut = 0)
QAction addAction (self, QString text, callable receiver, QKeySequence shortcut = 0)
QAction addAction (self, QIcon icon, QString text, QObject receiver, SLOT()SLOT() member, QKeySequence shortcut = 0)
QAction addAction (self, QIcon icon, QString text, callable receiver, QKeySequence shortcut = 0)
QAction addMenu (self, QMenu menu)
QMenu addMenu (self, QString title)
QMenu addMenu (self, QIcon icon, QString title)
QAction addSeparator (self)
changeEvent (self, QEvent)
clear (self)
int columnCount (self)
QAction defaultAction (self)
enterEvent (self, QEvent)
bool event (self, QEvent)
QAction exec_ (self)
QAction exec_ (self, QPoint p, QAction action = None)
bool focusNextPrevChild (self, bool next)
hideEvent (self, QHideEvent)
hideTearOffMenu (self)
QIcon icon (self)
initStyleOption (self, QStyleOptionMenuItem option, QAction action)
QAction insertMenu (self, QAction before, QMenu menu)
QAction insertSeparator (self, QAction before)
bool isEmpty (self)
bool isTearOffEnabled (self)
bool isTearOffMenuVisible (self)
keyPressEvent (self, QKeyEvent)
leaveEvent (self, QEvent)
QAction menuAction (self)
mouseMoveEvent (self, QMouseEvent)
mousePressEvent (self, QMouseEvent)
mouseReleaseEvent (self, QMouseEvent)
paintEvent (self, QPaintEvent)
popup (self, QPoint p, QAction action = None)
bool separatorsCollapsible (self)
setActiveAction (self, QAction act)
setDefaultAction (self, QAction)
setIcon (self, QIcon icon)
setNoReplayFor (self, QWidget widget)
setSeparatorsCollapsible (self, bool collapse)
setTearOffEnabled (self, bool)
setTitle (self, QString title)
QSize sizeHint (self)
timerEvent (self, QTimerEvent)
QString title (self)
wheelEvent (self, QWheelEvent)
Static Methods
QAction exec_ (list-of-QAction actions, QPoint pos, QAction action = None)
QAction exec_ (list-of-QAction actions, QPoint pos, QAction at, QWidget parent)
Qt Signals
void aboutToHide ()
void aboutToShow ()
void hovered (QAction *)
void triggered (QAction *)
Detailed Description
菜单QMenu类提供了一个菜单部件在菜单栏,上下文菜单,和其他弹出菜单中使用。
menu小部件是一个选择菜单。它可以是一个菜单栏下拉菜单或独立的上下文菜单。当用户点击相应的项目或按下指定的快捷键下拉菜单显示的菜单栏。使用QMenuBar.addMenu( )插入一个菜单到菜单栏。上下文菜单通常是由一些特殊的键盘按键或单击鼠标右键调用。它们可以非同步地执行popup()或与同步exec_( ) 。菜单也可以响应按键操作调用,这些都是一样的上下文菜单,除了它们是如何被调用。
| |
|
|
图。在显示的菜单Plastique widget style,Windows XP widget style和Macintosh widget style。
Actions
菜单包括行动项目清单。操作时添加的addAction( )addActions()和insertAction()函数。一个动作是垂直表示和呈现QStyle。此外,行动可以有一个文本标籤,画在最左侧的可选图标,快捷键序列,例如“ Ctrl + X键” 。
通过菜单持有的现有动作可以与发现actions( ) 。
有四种操作项目:分隔符,即显示一个子菜单的操作,窗口小部件和执行操作的动作。分离器插入addSeparator( ) ,与子菜单addMenu( ) ,和所有其他项目都被视为行动项目。
当插入操作项目您通常会指定一个接收器和一个插槽。每当产品的接收器将被notifedtriggered()。此外,菜单QMenu提供两个信号,activated()和highlighted(),该信号的QAction这是从菜单触发。
你清除一个菜单clear()和remove个别行动项目removeAction( ) 。
一个菜单QMenu还可以提供一个分离式菜单。可撕式菜单是包含菜单的副本的顶层窗口。这使得它可以为用户“撕下”常用菜单,并把它们在屏幕上方便的地方进行定位。如果你想为一个特定的菜单中选择此功能,将可撕式手柄setTearOffEnabled( ) 。当使用撕下菜单,记住,这个概念通常不使用在Microsoft Windows这样一些用户可能并不熟悉它。请考虑使用QToolBar代替。
窗口小部件可以被插入到菜单与QWidgetAction类。此类的实例是用来装小部件,并插入菜单与addAction( )重载采用一个QAction。
反之,操作可以被添加到窗口小部件与addAction( )addActions()和insertAction()函数。
Warning:为了使屏幕上的菜单QMenu可见,exec_()或popup( )应该被用来代替show( ) 。
QMenu on Qt for Windows CE
如果菜单集成到本机的菜单栏上的Windows Mobile不支持的信号: aboutToHide ( ) , aboutToShow ()和徘徊( ) 。这是不可能在Windows Mobile上的本机菜单显示一个图标。
QMenu on Mac OS X with Qt build against Cocoa
菜单QMenu可以在菜单/菜单栏插入一次。后来插入不会有任何影响或将导致禁用的菜单项。
请参阅Menus示例如何使用示例QMenuBar和菜单QMenu在你的应用程序。
Important inherited functions: addAction( )removeAction( )clear( )addSeparator()和addMenu( ) 。
Method Documentation
QMenu.__init__ (self, QWidget parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个菜单与父parent。
虽然一个弹出菜单始终是一个顶级窗口部件,如果父对象被弹出菜单会时父母被破坏(与任何其他删除QObject) 。
QMenu.__init__ (self, QString title, QWidget parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个菜单,一个title和parent。
虽然一个弹出菜单始终是一个顶级窗口部件,如果父对象被弹出菜单会时父母被破坏(与任何其他删除QObject) 。
See also title。
QAction QMenu.actionAt (self, QPoint)
[
返回位于项目pt;返回0 ,如果有有没有项目。
QMenu.actionEvent (self, QActionEvent)
]($docs-qaction.html)
QRect QMenu.actionGeometry (self, QAction)
[
返回行动的几何形状act。
](qrect.html)
QAction QMenu.activeAction (self)
[
返回当前突出显示的动作,或者0,如果不采取行动是当前突出显示。
]($docs-qaction.html)
See also setActiveAction( ) 。
QMenu.addAction (self, QAction action)
这是一个重载函数。
用这种便利函数创建一个新动作text。该函数将新创建的行动,行动的菜单的列表中,并返回它。
See also QWidget.addAction( ) 。
QAction QMenu.addAction (self, QString text)
[
这是一个重载函数。
这个方便的功能创建了一个新动作icon有的text。该函数将新创建的行动,行动的菜单的列表中,并返回它。
]($docs-qaction.html)
See also QWidget.addAction( ) 。
QAction QMenu.addAction (self, QIcon icon, QString text)
[
这是一个重载函数。
]($docs-qaction.html)
这种便利函数创建一个文本新动作text和一个可选的快捷方式shortcut。动作的triggered()信号被连接到receiver的member插槽。该函数将新创建的行动,行动的菜单的列表并返回它。
See also QWidget.addAction( ) 。
QAction QMenu.addAction (self, QString text, QObject receiver, SLOT()SLOT() member, QKeySequence shortcut = 0)
[
这是一个重载函数。
]($docs-qaction.html)
这个方便的功能创建了一个新动作icon有的text和一个可选的快捷方式shortcut。动作的triggered()信号被连接到member的槽receiver对象。该函数将新创建的行动,行动的菜单的列表中,并返回它。
See also QWidget.addAction( ) 。
QAction QMenu.addAction (self, QString text, callable receiver, QKeySequence shortcut = 0)
[
这是一个重载函数。
追加行动action于诉讼的菜单的列表。
]($docs-qaction.html)
See also QMenuBar.addAction()和QWidget.addAction( ) 。
QAction QMenu.addAction (self, QIcon icon, QString text, QObject receiver, SLOT()SLOT() member, QKeySequence shortcut = 0)
QAction QMenu.addAction (self, QIcon icon, QString text, callable receiver, QKeySequence shortcut = 0)
QAction QMenu.addMenu (self, QMenu menu)
这个方便的功能增加menu作为一个子菜单,此菜单。它返回menu的menuAction( ) 。此菜单不采取所有权menu。
See also QWidget.addAction()和QMenu.menuAction( ) 。
QMenu QMenu.addMenu (self, QString title)
添加一个新的QMenu同title到菜单。菜单采用了菜单的所有权。返回新菜单。
See also QWidget.addAction()和QMenu.menuAction( ) 。
QMenu QMenu.addMenu (self, QIcon icon, QString title)
添加一个新的QMenu同icon和title到菜单。菜单采用了菜单的所有权。返回新菜单。
See also QWidget.addAction()和QMenu.menuAction( ) 。
QAction QMenu.addSeparator (self)
这个便利函数创建一个新的分隔作用,即一个行动QAction.isSeparator( )返回True ,并添加了新的行动,行动该菜单的列表。它返回新创建的动作。
See also QWidget.addAction( ) 。
QMenu.changeEvent (self, QEvent)
从重新实现QWidget.changeEvent( ) 。
QMenu.clear (self)
删除所有菜单的操作。通过菜单,而不是在任何其他部件所示资的行动都将被删除。
See also removeAction( ) 。
int QMenu.columnCount (self)
如果一个菜单不适合在屏幕上勾画出自己,以便它不适合。它的风格取决于什么布局方式(例如,在Windows上,将使用多个列) 。
该函数返回的列所必需的数量。
QAction QMenu.defaultAction (self)
[
返回当前的默认操作。
]($docs-qaction.html)
See also setDefaultAction( ) 。
QMenu.enterEvent (self, QEvent)
从重新实现QWidget.enterEvent( ) 。
bool QMenu.event (self, QEvent)
从重新实现QObject.event( ) 。
QAction QMenu.exec_ (self)
[
执行此菜单同步。
这等效于exec(pos())
。
]($docs-qaction.html)
这将返回触发QAction无论是在弹出菜单或它的一个子菜单,或者0,如果没有项目被触发(通常是因为用户按下Esc键) 。
在大多数情况下,你要自己指定的位置,例如,当前鼠标位置:
exec([QCursor](qcursor.html).pos());
或对齐到一个小部件:
exec(somewidget.mapToGlobal([QPoint](qpoint.html)(0,0)));
或在反应的QMouseEvent* E:
exec(e->globalPos());
QAction QMenu.exec_ (self, QPoint p, QAction action = None)
[
这是一个重载函数。
执行此菜单同步。
]($docs-qaction.html)
弹出的菜单中,这样的动作action将在指定global位置p。翻译一个小部件的局部坐标系到全局坐标,使用QWidget.mapToGlobal( ) 。
这将返回触发QAction无论是在弹出菜单或它的一个子菜单,或者0,如果没有项目被触发(通常是因为用户按下Esc键) 。
请注意,所有信号都发出如常。如果连接了QAction到一个时隙,并调用菜单的exec_( ) ,你既可以通过信号槽连接,并在返回值获得的结果exec_( ) 。
常见的用法是在当前鼠标位置来定位菜单:
exec_([QCursor](qcursor.html).pos());
或对齐到一个小部件:
exec_(somewidget.mapToGlobal([QPoint](qpoint.html)(0, 0)));
或在反应的QMouseEvent* E:
exec_(e->globalPos());
当定位一个菜单exec_()或popup( ) ,请记住,你不能依赖于菜单的电流size( ) 。出于性能原因,菜单调整其大小只在必要时。所以在很多情况下,前和后显示的大小是不同的。相反,使用sizeHint( ),计算适当的大小取决于菜单的当前内容。
See also popup()和QWidget.mapToGlobal( ) 。
QAction QMenu.exec_ (list-of-QAction actions, QPoint pos, QAction action = None)
[
这是一个重载函数。
执行菜单同步。
]($docs-qaction.html)
菜单的操作由列表中指定的actions。该菜单会弹出让指定的动作,at,出现在全球的地位pos。如果at没有指定,那么在菜单出现在位置pos。parent是菜单的父控件,指定母会时提供上下文pos还不足以决定在哪里菜单应该去(例如,与多个桌面或当父被嵌入在QGraphicsView) 。
该函数返回触发QAction无论是在弹出菜单或它的一个子菜单,或者0,如果没有项目被触发(通常是因为用户按下Esc键) 。
这相当于:
[QMenu]($docs-qmenu.html) menu;
[QAction]($docs-qaction.html) *at = actions[0]; // Assumes actions is not empty
foreach ([QAction]($docs-qaction.html) *a, actions)
menu.addAction(a);
menu.exec_(pos, at);
See also popup()和QWidget.mapToGlobal( ) 。
QAction QMenu.exec_ (list-of-QAction actions, QPoint pos, QAction at, QWidget parent)
[
这是一个重载函数。
执行菜单同步。
菜单的操作由列表中指定的actions。该菜单会弹出让指定的动作,at,出现在全球的地位pos。如果at没有指定,那么在菜单出现在位置pos。
]($docs-qaction.html)
该函数返回触发QAction无论是在弹出菜单或它的一个子菜单,或者0,如果没有项目被触发(通常是因为用户按下Esc键) 。
这相当于:
[QMenu]($docs-qmenu.html) menu;
[QAction]($docs-qaction.html) *at = actions[0]; // Assumes actions is not empty
foreach ([QAction]($docs-qaction.html) *a, actions)
menu.addAction(a);
menu.exec_(pos, at);
See also popup()和QWidget.mapToGlobal( ) 。
bool QMenu.focusNextPrevChild (self, bool next)
从重新实现QWidget.focusNextPrevChild( ) 。
QMenu.hideEvent (self, QHideEvent)
从重新实现QWidget.hideEvent( ) 。
QMenu.hideTearOffMenu (self)
此功能将强行隐藏撕下菜单使得它从用户的桌面上消失。
See also isTearOffMenuVisible()和isTearOffEnabled( ) 。
QIcon QMenu.icon (self)
[
QMenu.initStyleOption (self, QStyleOptionMenuItem option, QAction action)
]($docs-qicon.html)
初始化option从这个菜单和信息的价值action。当他们需要一个这种方法是有用的子类QStyleOptionMenuItem,但不希望在所有的信息填写自己。
See also QStyleOption.initFrom()和QMenuBar.initStyleOption( ) 。
QAction QMenu.insertMenu (self, QAction before, QMenu menu)
这个方便的功能插件menu行动之前,before并返回菜单menuAction( ) 。
See also QWidget.insertAction()和addMenu( ) 。
QAction QMenu.insertSeparator (self, QAction before)
这个便利函数创建一个新的分隔作用,即一个行动QAction.isSeparator( )返回True 。该函数插入新创建的行动变成行动之前行动这个菜单的列表before并返回它。
See also QWidget.insertAction()和addSeparator( ) 。
bool QMenu.isEmpty (self)
如果有,否则插入菜单中没有明显的动作,假,则返回True 。
这个函数中引入了Qt 4.2中。
See also QWidget.actions( ) 。
bool QMenu.isTearOffEnabled (self)
bool QMenu.isTearOffMenuVisible (self)
当一个菜单被撕下第二个菜单显示来显示菜单内容在一个新窗口。当菜单在此模式下,菜单是可见的,则返回True ,否则返回False 。
See also hideTearOffMenu()和isTearOffEnabled( ) 。
QMenu.keyPressEvent (self, QKeyEvent)
从重新实现QWidget.keyPressEvent( ) 。
QMenu.leaveEvent (self, QEvent)
从重新实现QWidget.leaveEvent( ) 。
QAction QMenu.menuAction (self)
[
返回与此菜单关联的动作。
QMenu.mouseMoveEvent (self, QMouseEvent)
]($docs-qaction.html)
从重新实现QWidget.mouseMoveEvent( ) 。
QMenu.mousePressEvent (self, QMouseEvent)
从重新实现QWidget.mousePressEvent( ) 。
QMenu.mouseReleaseEvent (self, QMouseEvent)
从重新实现QWidget.mouseReleaseEvent( ) 。
QMenu.paintEvent (self, QPaintEvent)
从重新实现QWidget.paintEvent( ) 。
QMenu.popup (self, QPoint p, QAction action = None)
显示的菜单,使动作atAction将在指定global位置p。翻译一个小部件的局部坐标系到全局坐标,使用QWidget.mapToGlobal( ) 。
当定位一个菜单exec_( )或弹出( ) ,请记住,你不能依赖于菜单的电流size( ) 。出于性能原因,菜单调整其大小只有当必要的,所以在很多情况下,前,后演出的规模是不同的。相反,使用sizeHint( ),计算适当的大小取决于菜单的当前内容。
See also QWidget.mapToGlobal()和exec_( ) 。
bool QMenu.separatorsCollapsible (self)
QMenu.setActiveAction (self, QAction act)
设置当前突出显示的动作act。
See also activeAction( ) 。
QMenu.setDefaultAction (self, QAction)
此设置的默认操作为act。默认动作可以具有视觉提示,这取决于当前QStyle。默认动作通常表示在默认情况下,当发生跌落会发生什么。
See also defaultAction( ) 。
QMenu.setIcon (self, QIcon icon)
QMenu.setNoReplayFor (self, QWidget widget)
QMenu.setSeparatorsCollapsible (self, bool collapse)
QMenu.setTearOffEnabled (self, bool)
QMenu.setTitle (self, QString title)
QSize QMenu.sizeHint (self)
QMenu.timerEvent (self, QTimerEvent)
从重新实现QObject.timerEvent( ) 。
QString QMenu.title (self)
QMenu.wheelEvent (self, QWheelEvent)
从重新实现QWidget.wheelEvent( ) 。
Qt Signal Documentation
void aboutToHide ()
这是该信号的默认超载。
这个信号被发射之前的菜单,从用户隐藏。
这个函数中引入了Qt 4.2中。
See also aboutToShow()和hide( ) 。
void aboutToShow ()
这是该信号的默认超载。
这个信号被发射的菜单被显示给用户之前。
See also aboutToHide()和show( ) 。
void hovered (QAction *)
这是该信号的默认超载。
当一个菜单操作高亮显示这个信号被发射;action是导致该信号被发射的操作。
通常这是用来更新状态信息。
See also triggered()和QAction.hovered( ) 。
void triggered (QAction *)
这是该信号的默认超载。
当在该菜单中的操作被触发这个信号被发射。
action是导致该信号被发射的操作。
通常情况下,在连接每个菜单操作的triggered()信号到其自己的定制插槽,但有时你会想几个动作连接到一个单一的插槽,例如,当你有一组密切相关的动作,如“左对齐” , “中心” , “右对齐” 。
Note:这个信号被发射在一个层次中的父主菜单。因此,只有父菜单需要连接到一个槽;子菜单无需进行连接。
See also hovered()和QAction.triggered( ) 。