Osadzanie QWidget w oknie X11
Chcę osadzić dwa QWidgets w oknie utworzonym przy użyciu XLib. Napisałem ten kod:
<code>// 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(); } </code>
Mogę pomyślnie uruchomić ten program, ale te widgety nie są osadzane w utworzonym przeze mnie oknie X11. Wszystkie trzy rzeczy są tworzone, ale niezależnie. Te widgety nie są osadzane w oknie.