gpt4 book ai didi

c++ - 将 QWidget 嵌入到 X11 窗口中

转载 作者:可可西里 更新时间:2023-11-01 17:52:19 52 4
gpt4 key购买 nike

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

最佳答案

以下内容表明您可能需要考虑显示小部件的顺序,以便将小部件的 winId 设置为可以传递给 XReparentWindow 的内容。

http://www.qtforum.org/article/16529/xreparent-external-x11-application.html

关于c++ - 将 QWidget 嵌入到 X11 窗口中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10089323/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com