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的容器。
int main(int argc, char *argv[])
{
[QApplication](qapplication.html) app(argc, argv);
if (app.arguments().count() != 2) {
qFatal("Error - expected executable path as argument");
return 1;
}
QX11EmbedContainer container;
container.show();
[QProcess](qprocess.html) process(&container);
[QString](qstring.html) executable(app.arguments()[1]);
[QStringList](qstringlist.html) arguments;
arguments << [QString](qstring.html).number(container.winId());
process.start(executable, arguments);
int status = app.exec();
process.close();
return status;
}
当客户端插件被嵌入时,容器会发出信号clientIsEmbedded( ) 。信号clientClosed()当一个部件被关闭射出。
这是可能的QX11EmbedContainer从工具包比其他的Qt ,比如GTK +的嵌入XEMBED部件。任意(非XEMBED ) X11的部件也可以嵌入,但XEMBED特定的功能,如窗口激活并集中处理,然后消失。
GTK +的当量QX11EmbedContainer是GtkSocket容器,另外。相应的KDE 3的部件被称为QXEmbed 。
Type Documentation
QX11EmbedContainer.Error
Constant | Value | Description |
---|---|---|
QX11EmbedContainer.Unknown |
0 |
出现无法识别的错误。 |
QX11EmbedContainer.InvalidWindowID |
2 |
容器的X11窗口ID是无效的。此错误通常是通过传递一个无效的窗口ID嵌入( )触发。 |
Method Documentation
QX11EmbedContainer.__init__ (self, QWidget parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
创建QX11EmbedContainer与给定对象parent。
int QX11EmbedContainer.clientWinId (self)
如果容器有一个嵌入的控件,该函数返回客户端的X11窗口的ID ,否则返回0 。
QX11EmbedContainer.discardClient (self)
分离客户端从嵌入。客户端会出现在桌面上的独立窗口。
QX11EmbedContainer.embedClient (self, int id)
指示容器嵌入X11窗口与窗口IDid。该客户端插件将移动的容器窗口的顶部,并调整大小以适合容器。
该id应该是由一个启用XEMBED应用所控制的窗口的ID,但这不是强制性的。如果id不属于一个XEMBED客户端控件,然后集中处理,活化,加速器和其他功能将无法正常工作。
Error QX11EmbedContainer.error (self)
[
返回所发生的最后一个错误。
bool QX11EmbedContainer.event (self, QEvent)
]($docs-qx11embedcontainer.html#Error-enum)
从重新实现QObject.event( ) 。
bool QX11EmbedContainer.eventFilter (self, QObject, QEvent)
QX11EmbedContainer.hideEvent (self, QHideEvent)
QSize QX11EmbedContainer.minimumSizeHint (self)
[
QX11EmbedContainer.paintEvent (self, QPaintEvent e)
]($docs-qsize.html)
QX11EmbedContainer.resizeEvent (self, QResizeEvent)
QX11EmbedContainer.showEvent (self, QShowEvent)
Qt Signal Documentation
void clientClosed ()
这是该信号的默认超载。
这个信号是由所述容器射出的客户端插件关闭时。
void clientIsEmbedded ()
这是该信号的默认超载。
这个信号是由当客户端插件已经被嵌入所述容器射出。
void error (QX11EmbedContainer::Error)
这是该信号的默认超载。
这个信号被发射,如果嵌入或与客户端进行通信时发生了错误。指定error描述发生的问题。
See also QX11EmbedContainer.Error。