Tôi muốn nhúng hai QWidgets vào một cửa sổ được tạo bằng XLib. Tôi đã viết mã này:Nhúng QWidget vào Cửa sổ 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();
}
Tôi có thể chạy chương trình này thành công nhưng các tiện ích này không được nhúng vào cửa sổ X11 mà tôi đã tạo. Cả ba thứ đều được tạo ra, nhưng độc lập. Các tiện ích này không được nhúng vào cửa sổ.
Chek này ra: QX11EmbedWidget – HeyYO
[QX11EmbedWidget] (http://qt-project.org/doc/qt-4.8/qx11embedwidget.html) –
Tôi đã sử dụng chứa QX11 cũng làm như vậy. Nhưng tôi cần phải làm điều đó bằng cách sử dụng cửa sổ tạo ra đặc biệt bằng cách sử dụng XLib, và do đó câu hỏi. –