我想将两个 QWidget 嵌入到使用 XLib 创建的窗口中。我写了这段代码:
// 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 窗口中。这三样东西都是被创造出来的,但都是独立的。这些小部件没有嵌入到窗口中。