有一个 Qt 应用程序。通过调用 XCreateWindow 函数在此应用程序中创建的 GL 窗口,我无法对其进行编辑。我需要将 Xwindow 放在 Qt 应用程序中的 QWidget 中。
在文档中:
void QWidget::create ( WId window = 0, bool initializeWindow = true,
bool destroyOldWindow = true ) [protected]
如果窗口为 0,则创建一个新的窗口小部件窗口,否则将窗口小部件的窗口设置为窗口。初始化窗口设置几何等)如果 initializeWindow 为真。如果 initializeWindow 为 false,则不执行初始化。此参数仅在 window 是有效窗口时才有意义。
...
为了验证函数 QWidget::create 的结果,有以下代码:
class ParentWindow : public QWidget
{
Q_OBJECT
public:
ParentWindow(WId id)
{
create(id);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton* button = new QPushButton("MEGA BUTTON");
button->show();
ParentWindow w(button->winId());
w.show();
return a.exec();
}
当应用程序启动时,会出现一个空白窗口。虽然预期的窗口包含一个按钮(或成为一个按钮)。如何将 X11 窗口放入我的 QWidget?