QX11EmbedContainer Class Reference

[QtGui module]

该QX11EmbedContainer类提供了一个XEMBED容器部件。More…

继承QWidget

Types

  • enum Error { Unknown, Internal, InvalidWindowID }

Methods

  • __init__ (self, QWidget parent = None)
  • int clientWinId (self)
  • discardClient (self)
  • embedClient (self, int id)
  • Error error (self)
  • bool event (self, QEvent)
  • bool eventFilter (self, QObject, QEvent)
  • hideEvent (self, QHideEvent)
  • QSize minimumSizeHint (self)
  • paintEvent (self, QPaintEvent e)
  • resizeEvent (self, QResizeEvent)
  • showEvent (self, QShowEvent)

Qt Signals

  • void clientClosed ()
  • void clientIsEmbedded ()
  • void error (QX11EmbedContainer::Error)

Detailed Description

该QX11EmbedContainer类提供了一个XEMBED容器部件。

XEMBED是支持从一个应用程序中的窗口小部件的嵌入到另一个应用程序的X11协议。

一个XEMBEDcontainer是图形的位置嵌入外部client widget。客户端插件是嵌入到容器中的一个窗口。

当一个部件被嵌入与容器接收标籤焦点,焦点被传递到窗口小部件。当部件达到其焦点链的末端,焦点被传递回容器中。窗口激活,加速器的支持,模式和拖放( XDND )也被处理。

QX11EmbedContainer通常用于书写板或工具栏持有小程序,或_swallowing_X11应用程序。当写一个面板应用程序,一个容器小部件工具栏上创建的,然后它可以吞下使用嵌入另一个控件( ) ,或允许XEMBED小工具嵌入到自己。容器的X11窗口的ID ,这是与检索winId() ,然后必须知道的客户端插件。嵌入后,客户端的窗口ID可以检索与clientWinId( ) 。

在下面的例子中,一个容器控件被创建为主要部件。然后,它调用名为“ playmovie ”的应用程序,通过它的窗口ID作为命令行参数。在“ playmovie ”计划是一个XEMBED客户端插件。该插件嵌入自身到使用容器的窗口ID的容器。

  1. int main(int argc, char *argv[])
  2. {
  3. [QApplication](qapplication.html) app(argc, argv);
  4. if (app.arguments().count() != 2) {
  5. qFatal("Error - expected executable path as argument");
  6. return 1;
  7. }
  8. QX11EmbedContainer container;
  9. container.show();
  10. [QProcess](qprocess.html) process(&container);
  11. [QString](qstring.html) executable(app.arguments()[1]);
  12. [QStringList](qstringlist.html) arguments;
  13. arguments << [QString](qstring.html).number(container.winId());
  14. process.start(executable, arguments);
  15. int status = app.exec();
  16. process.close();
  17. return status;
  18. }

当客户端插件被嵌入时,容器会发出信号clientIsEmbedded( ) 。信号clientClosed()当一个部件被关闭射出。

这是可能的QX11EmbedContainer从工具包比其他的Qt ,比如GTK +的嵌入XEMBED部件。任意(非XEMBED ) X11的部件也可以嵌入,但XEMBED特定的功能,如窗口激活并集中处理,然后消失。

GTK +的当量QX11EmbedContainer是GtkSocket容器,另外。相应的KDE 3的部件被称为QXEmbed 。


Type Documentation

  1. QX11EmbedContainer.Error
Constant Value Description
QX11EmbedContainer.Unknown 0 出现无法识别的错误。
QX11EmbedContainer.InvalidWindowID 2 容器的X11窗口ID是无效的。此错误通常是通过传递一个无效的窗口ID嵌入( )触发。

Method Documentation

  1. QX11EmbedContainer.__init__ (self, QWidget parent = None)

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

创建QX11EmbedContainer与给定对象parent

  1. int QX11EmbedContainer.clientWinId (self)

如果容器有一个嵌入的控件,该函数返回客户端的X11窗口的ID ,否则返回0 。

  1. QX11EmbedContainer.discardClient (self)

分离客户端从嵌入。客户端会出现在桌面上的独立窗口。

  1. QX11EmbedContainer.embedClient (self, int id)

指示容器嵌入X11窗口与窗口IDid。该客户端插件将移动的容器窗口的顶部,并调整大小以适合容器。

id应该是由一个启用XEMBED应用所控制的窗口的ID,但这不是强制性的。如果id不属于一个XEMBED客户端控件,然后集中处理,活化,加速器和其他功能将无法正常工作。

  1. Error QX11EmbedContainer.error (self)

[

返回所发生的最后一个错误。

  1. bool QX11EmbedContainer.event (self, QEvent)

]($docs-qx11embedcontainer.html#Error-enum)

从重新实现QObject.event( ) 。

  1. bool QX11EmbedContainer.eventFilter (self, QObject, QEvent)
  1. QX11EmbedContainer.hideEvent (self, QHideEvent)
  1. QSize QX11EmbedContainer.minimumSizeHint (self)

[

  1. QX11EmbedContainer.paintEvent (self, QPaintEvent e)

]($docs-qsize.html)

从重新实现QWidget.paintEvent( ) 。

  1. QX11EmbedContainer.resizeEvent (self, QResizeEvent)
  1. QX11EmbedContainer.showEvent (self, QShowEvent)

Qt Signal Documentation

  1. void clientClosed ()

这是该信号的默认超载。

这个信号是由所述容器射出的客户端插件关闭时。

  1. void clientIsEmbedded ()

这是该信号的默认超载。

这个信号是由当客户端插件已经被嵌入所述容器射出。

  1. void error (QX11EmbedContainer::Error)

这是该信号的默认超载。

这个信号被发射,如果嵌入或与客户端进行通信时发生了错误。指定error描述发生的问题。

See also QX11EmbedContainer.Error