XLib를 사용하여 생성 된 윈도우에 두 개의 QWidgets를 삽입하고 싶습니다. 이 코드를 작성했습니다 :X11 윈도우에 QWidget 포함하기
// 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
[QX11EmbedWidget] (http://qt-project.org/doc/qt-4.8/qx11embedwidget.html) –
나는 동일한 작업을 수행하는 데 사용 QX11 용기가 있었다. 하지만 XLib을 사용하여 특별히 만든 창을 사용하여이를 수행해야합니다. 따라서 질문이 필요합니다. –