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

QWidgetAction Class Reference
[QtGui module]

该QWidgetAction类扩展QAction通过插入自定义的控件到基础的行动的容器,如工具栏的接口。More...

继承QAction

Methods


Detailed Description

该QWidgetAction类扩展QAction通过插入自定义的控件到基础的行动的容器,如工具栏的接口。

大多数操作在一个应用程序中表示为在工具栏菜单或按钮的项目。但有时比较复杂的部件是必要的。例如,在一个文字处理软件的缩放操作可使用实现QComboBoxQToolBar,呈现出各种不同的缩放级别。QToolBar提供QToolBar.insertWidget()作为便利的功能,用于插入一个单一的部件。但是,如果你想实现在多个容器使用自定义的小部件进行可视化的操作,那么你必须继承QWidgetAction 。

如果一个QWidgetAction被添加到例如QToolBar然后QWidgetAction.createWidget()被调用。该函数的重新实现应该创建一个新的自定义小部件指定的父。

如果动作是从一个容器控件,然后取出QWidgetAction.deleteWidget( )被调用先前创建的自定义窗口小部件作为参数。默认实现隐藏窗口小部件并使用它删除QObject.deleteLater( ) 。

如果你只有一个单一的自定义窗口小部件,那么你可以用它设置为默认的小工具setDefaultWidget( ) 。如果该操作被添加到该插件将被用于QToolBar或者一般来支持QWidgetAction动作容器。如果只有一个默认插件一个QWidgetAction被添加到两个工具栏的同时则默认插件仅示出了在操作中加入第一工具条。 QWidgetAction接管了默认的窗口小部件的所有权。

请注意,它是由小部件通过重新实现鼠标事件处理程序,并调用激活动作,例如QAction.trigger( ) 。

Mac OS X:如果您添加一个Widget在Mac OS X上的应用程序的菜单栏中的菜单,小工具将被添加,它会发挥作用,但有一些限制:

  1. 小部件是从重设父离开QMenu本机菜单视图。如果你表现出的菜单在其他地方(例如,作为一个弹出菜单) ,小部件不会在那里。
  2. widget的对焦/键盘操作是不可能的。
  3. 由于苹果的设计,在部件上鼠标跟踪目前不起作用。
  4. 连接triggered()信号来打开一个模态对话框会导致在Mac OS X 10.4 (已知的bug被苹果公司承认)崩溃插槽,一个解决方法是使用一个QueuedConnection而不是DirectConnection 。

Method Documentation

QWidgetAction.__init__ (self, QObject parent)

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

构造一个行动parent

list-of-QWidget QWidgetAction.createdWidgets (self)

返回已使用该控件列表createWidget()和目前正在由小部件使用的行动已被添加到。

QWidget QWidgetAction.createWidget (self, QWidget parent)

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

这个函数被调用时的动作被添加到支持自定义部件的容器控件。如果你不希望一个自定义窗口小部件被用作指定的操作的代表性parent窗口小部件然后0应该返回。

See also deleteWidget( ) 。

QWidget QWidgetAction.defaultWidget (self)

返回默认的小部件。

See also setDefaultWidget( ) 。

QWidgetAction.deleteWidget (self, QWidget widget)

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

每当行动是从一个容器控件,使用一个自定义的显示操作删除这个函数被调用widget以前使用创建createWidget( ) 。默认实现隐藏widget并用准备好删除QObject.deleteLater( ) 。

See also createWidget( ) 。

bool QWidgetAction.event (self, QEvent)

从重新实现QObject.event( ) 。

bool QWidgetAction.eventFilter (self, QObject, QEvent)

从重新实现QObject.eventFilter( ) 。

QWidgetAction.releaseWidget (self, QWidget widget)

widget争论

指定发布widget

支持行动容器部件调用此函数时,窗口小部件操作被删除。

See also requestWidget( )deleteWidget()和defaultWidget( ) 。

QWidget QWidgetAction.requestWidget (self, QWidget parent)

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

返回表示动作的部件,用给定的parent

支持行动集装箱部件可以调用这个函数来请求一个widget作为动作的视觉表现。

See also releaseWidget( )createWidget()和defaultWidget( ) 。

QWidgetAction.setDefaultWidget (self, QWidget w)

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

Sets widget是默认的小部件。所有权转移至QWidgetAction。除非createWidget( )是由一个子类重新实现当一个容器控件通过请求将Widget返回一个新插件的默认控件是用来requestWidget( ) 。

See also defaultWidget( ) 。




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