我想将两个QWidget嵌入到使用XLib创建的窗口中。我写了这个代码:将QWidget嵌入到X11窗口中
// Assume all the necessary headers included
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// Create widget 1
QWidget widget1 ;
widget1.setGeometry(44,44,666,666);
widget1.show();
// Create widget 2
QWidget widget2 ;
widget2.setGeometry(144,144,666,666);
widget2.show();
Display *display = XOpenDisplay(0); // 0 parameter for default values
if (display != NULL)
{
// Create the x11 window using XLib
Window w = XCreateWindow(display, DefaultRootWindow(display),
0, 0, 1200, 1100, 0,CopyFromParent, CopyFromParent, CopyFromParent, 0, 0);
XMapWindow(display, w);
XFlush(display);
XReparentWindow(display, widget1.winId(), w, 0, 0);
XReparentWindow(display, widget2.winId(), w, 1, 10);
}
else
std::cout << "Error: Opening display" << std::endl ;
return app.exec();
}
我能够成功运行此程序,但这些小部件没有得到嵌入到我创建的X11窗口。所有这三件事情都正在创造,但独立。这些小部件不会嵌入到窗口中。
赤了这一点:QX11EmbedWidget – HeyYO 2012-04-12 14:08:43
[QX11EmbedWidget](http://qt-project.org/doc/qt-4.8/qx11embedwidget.html) – 2012-04-12 15:42:40
我曾用过的QX11容器做同样的。但是我需要使用专门使用XLib创建的窗口进行操作,因此也是一个问题。 – 2012-04-13 05:15:24