Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QMenuBar Class Reference
[QtGui module]

该QMenuBar类提供了一个水平菜单栏。More...

继承QWidget

Methods

Qt Signals


Detailed Description

该QMenuBar类提供了一个水平菜单栏。

菜单栏包含下拉菜单项列表中。您添加菜单项addMenu( ) 。例如, asuming那menubar是一个指针,指向一个QMenuBar和fileMenu是一个指针,指向QMenu,下面的语句插入菜单进入菜单栏:

 menubar->addMenu(fileMenu);

在菜单项文本的符号设置Alt + F键作为此菜单中的快捷方式。 (您可以使用“\u0026\u0026”获得在菜单栏中一个真正的符号。 )

有没有必要制定出一个菜单栏。它会自动将其自身的几何形状的父控件的顶部,并适当地改变它,每当父调整大小。

Usage

在大多数的主窗口风格的应用程序,你会使用menuBar()在所提供的功能QMainWindow,加入QMenus到菜单栏和添加QActions到弹出式菜单。

例子(从Menus为例):

     fileMenu = menuBar()->addMenu(tr("&File"));
     fileMenu->addAction(newAct);

菜单项可以与被删除removeAction( ) 。

窗口小部件可以使用的情况下被添加到菜单QWidgetAction类来保存它们。这些动作可以被插入到在通常的方式菜单,见QMenu文档了解更多信息。

Platform Dependent Look and Feel

不同的平台上有菜单栏的外观和行为的不同要求,当用户与其互动。举例来说, Windows系统通常配置,使得带下划线的字符助记符,表明在菜单栏项目的快捷键只显示当Alt键被按下。

A menu bar shown in the Plastique widget style. The Plastique widget style, like most other styles, handles the Help menu in the same way as it handles any other menu.
A menu bar shown in the Motif widget style. The Motif widget style treats Help menus in a special way, placing them at right-hand end of the menu bar.

QMenuBar on Mac OS X

QMenuBar在Mac OS X是一个包装使用系统范围的菜单栏。如果您有多个菜单栏在一个对话框中的最外层的菜单栏(通常里面一个小部件与部件标志Qt.Window)将用于全系统的菜单栏。

Qt的用于Mac OS X还提供了一个菜单栏合并功能,使QMenuBar更符合公认的Mac OS X的菜单栏布局。该合并功能是基于字符串匹配的标题QMenu条目。这些字符串翻译(使用QObject.tr())中的“ QMenuBar ”的上下文。如果项目被移动及其插槽仍然会火,就好像它是在原来的地方。下表概述了字符串寻找和那里的条目,如果匹配放置:

String matches Placement Notes
about.* Application Menu | About <application name> The application name is fetched from the Info.plist file (see note below). If this entry is not found no About item will appear in the Application Menu.
config, options, setup, settings or preferences Application Menu | Preferences If this entry is not found the Settings item will be disabled
quit or exit Application Menu | Quit <application name> If this entry is not found a default Quit item will be created to call QApplication.quit()

您可以通过使用复盖此行为QAction.menuRole()属性。

如果你想在一台Mac应用程序的所有窗口共享一个菜单栏,你必须创建一个没有父项的菜单栏。创建一个父少菜单栏是这样的:

 QMenuBar *menuBar = new QMenuBar(0);

Note: Do not通话QMainWindow.menuBar()来创建共享菜单栏,因为该菜单栏将有QMainWindow作为其母公司。该菜单栏只会显示父QMainWindow

Note:从设置的值获得用于在菜单栏的应用程序名称的文本Info.plist文件中的应用程序的包。看Deploying an Application on Mac OS X了解更多信息。

QMenuBar on Windows CE

QMenuBar在Windows CE是一个包装使用系统范围的菜单栏,类似于苹果。此功能被激活Windows Mobile和集成QMenuBar与本地软键。左软键可以被控制QMenuBar.setDefaultAction()和右软键,可用于访问菜单栏。

hovered( )信号不支持本机菜单集成。此外,它是不可能在Windows Mobile上的本机菜单显示一个图标。

Examples

Menus示例显示了如何使用QMenuBar和QMenu。其他main window application examples还提供了使用这些类的菜单。


Method Documentation

QMenuBar.__init__ (self, QWidget parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个父菜单栏parent

QAction QMenuBar.actionAt (self, QPoint)

返回QActionpt。返回0,如果有一个在无动作pt或者,如果位置有一个隔板。

See also addAction()和addSeparator( ) 。

QMenuBar.actionEvent (self, QActionEvent)

从重新实现QWidget.actionEvent( ) 。

QRect QMenuBar.actionGeometry (self, QAction)

返回行动的几何形状act作为QRect

See also actionAt( ) 。

QAction QMenuBar.activeAction (self)

返回QAction这是当前突出显示。如果不采取行动是当前选定的空指针将被返回。

See also setActiveAction( ) 。

QMenuBar.addAction (self, QAction action)

这是一个重载函数。

用这种便利函数创建一个新动作text。该函数将新创建的行动,行动的菜单的列表中,并返回它。

See also QWidget.addAction()和QWidget.actions( ) 。

QAction QMenuBar.addAction (self, QString text)

这是一个重载函数。

用给定的这个便利函数创建一个新动作text。动作的triggered()信号被连接到receivermember插槽。该函数将新创建的行动,行动的菜单的列表并返回它。

See also QWidget.addAction()和QWidget.actions( ) 。

QAction QMenuBar.addAction (self, QString text, QObject receiver, SLOT()SLOT() member)

这是一个重载函数。

追加行动action于诉讼的菜单栏的列表。

See also QMenu.addAction( )QWidget.addAction()和QWidget.actions( ) 。

QAction QMenuBar.addAction (self, QString text, callable receiver)

QAction QMenuBar.addMenu (self, QMenu menu)

追加可menu菜单栏。返回菜单的menuAction ( ) 。

Note:返回QAction对象可以用来隐藏相应的菜单。

See also QWidget.addAction()和QMenu.menuAction( ) 。

QMenu QMenuBar.addMenu (self, QString title)

添加一个新的QMenutitle菜单栏。菜单栏取菜单的所有权。返回新菜单。

See also QWidget.addAction()和QMenu.menuAction( ) 。

QMenu QMenuBar.addMenu (self, QIcon icon, QString title)

添加一个新的QMenuicontitle菜单栏。菜单栏取菜单的所有权。返回新菜单。

See also QWidget.addAction()和QMenu.menuAction( ) 。

QAction QMenuBar.addSeparator (self)

附加一个分隔符的菜单。

QMenuBar.changeEvent (self, QEvent)

从重新实现QWidget.changeEvent( ) 。

QMenuBar.clear (self)

删除菜单栏的所有动作。

Note:在Mac OS X中,已合并到系统菜单栏的菜单项由该函数不会被删除。处理这一个方法是删除多馀的动作自己。您可以设置menu role在不同的菜单,让你提前知道哪个菜单项都被合并,哪些没有。然后决定如何重新创建或删除自己。

See also removeAction( ) 。

QWidget QMenuBar.cornerWidget (self, Qt.Corner corner = Qt.TopRightCorner)

返回该插件上的第一个或最后一个菜单项的右边的左边,这取决于corner

Note:使用一个角落里比其他Qt.TopRightCorner or Qt.TopLeftCorner将导致警告。

See also setCornerWidget( ) 。

bool QMenuBar.event (self, QEvent)

从重新实现QObject.event( ) 。

bool QMenuBar.eventFilter (self, QObject, QEvent)

从重新实现QObject.eventFilter( ) 。

QMenuBar.focusInEvent (self, QFocusEvent)

从重新实现QWidget.focusInEvent( ) 。

QMenuBar.focusOutEvent (self, QFocusEvent)

从重新实现QWidget.focusOutEvent( ) 。

int QMenuBar.heightForWidth (self, int)

从重新实现QWidget.heightForWidth( ) 。

QMenuBar.initStyleOption (self, QStyleOptionMenuItem option, QAction action)

初始化option从菜单栏和信息的价值action。当他们需要一个这种方法是有用的子类QStyleOptionMenuItem,但不希望在所有的信息填写自己。

See also QStyleOption.initFrom()和QMenu.initStyleOption( ) 。

QAction QMenuBar.insertMenu (self, QAction before, QMenu menu)

这个方便的功能插件menu行动之前,before并返回菜单menuAction ( ) 。

See also QWidget.insertAction()和addMenu( ) 。

QAction QMenuBar.insertSeparator (self, QAction before)

这个便利函数创建一个新的分隔作用,即一个行动QAction.isSeparator( )返回True 。该函数插入新创建的行动变成行动之前的行动为此菜单栏的列表before并返回它。

See also QWidget.insertAction()和addSeparator( ) 。

bool QMenuBar.isDefaultUp (self)

bool QMenuBar.isNativeMenuBar (self)

QMenuBar.keyPressEvent (self, QKeyEvent)

从重新实现QWidget.keyPressEvent( ) 。

QMenuBar.leaveEvent (self, QEvent)

从重新实现QWidget.leaveEvent( ) 。

QSize QMenuBar.minimumSizeHint (self)

从重新实现QWidget.minimumSizeHint( ) 。

QMenuBar.mouseMoveEvent (self, QMouseEvent)

从重新实现QWidget.mouseMoveEvent( ) 。

QMenuBar.mousePressEvent (self, QMouseEvent)

从重新实现QWidget.mousePressEvent( ) 。

QMenuBar.mouseReleaseEvent (self, QMouseEvent)

从重新实现QWidget.mouseReleaseEvent( ) 。

QMenuBar.paintEvent (self, QPaintEvent)

从重新实现QWidget.paintEvent( ) 。

QMenuBar.resizeEvent (self, QResizeEvent)

从重新实现QWidget.resizeEvent( ) 。

QMenuBar.setActiveAction (self, QAction action)

设置当前突出显示的动作act

这个函数是Qt 4.1中引入。

See also activeAction( ) 。

QMenuBar.setCornerWidget (self, QWidget widget, Qt.Corner corner = Qt.TopRightCorner)

widget说法有它的所有权转移给Qt的。

这台给定的widget直接显示在第一菜单项的左侧,或在最后的菜单项的右侧,这取决于corner

在菜单栏佔用的所有权widget,重定父级成的菜单栏。然而,如果corner已经包含了一个小工具,这个以前的部件将不再进行管理,并仍将是菜单栏的可见子。

Note:使用一个角落里比其他Qt.TopRightCorner or Qt.TopLeftCorner将导致警告。

See also cornerWidget( ) 。

QMenuBar.setDefaultUp (self, bool)

QMenuBar.setNativeMenuBar (self, bool nativeMenuBar)

QMenuBar.setVisible (self, bool visible)

从重新实现QWidget.setVisible( ) 。

QSize QMenuBar.sizeHint (self)

从重新实现QWidget.sizeHint( ) 。

QMenuBar.timerEvent (self, QTimerEvent)

从重新实现QObject.timerEvent( ) 。


Qt Signal Documentation

void hovered (QAction *)

这是该信号的默认超载。

当一个菜单操作高亮显示这个信号被发射;action是导致事件要发送的动作。

通常这是用来更新状态信息。

See also triggered()和QAction.hovered( ) 。

void triggered (QAction *)

这是该信号的默认超载。

当属于该菜单栏的菜单中选择操作被触发的鼠标点击一个结果,这个信号被发射;action是导致该信号被发射的操作。

Note: QMenuBar必须有所有权QMenu为了这个信号来工作。

通常情况下,你使用每个菜单操作连接到一个单一的插槽QAction.triggered( ) ,但有时你会想几个项目连接到一个单一的插槽(通常,如果用户从一个数组中选择) 。这个信号是在这样的情况下是有用的。

See also hovered()和QAction.triggered( ) 。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5