gpt4 book ai didi

qt - QX11EmbedWidget 和 QX11EmbedContainer

转载 作者:行者123 更新时间:2023-12-01 06:46:59 26 4
gpt4 key购买 nike

可以在 QX11EmbedContainer 中放置任意程序(firefox、openoffice 等)吗?流动似乎起作用了

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QX11EmbedContainer container;
container.show();

QProcess * process = new QProcess(&container);
QString executable("xterm");
QStringList arguments;
arguments << "-into";
arguments << QString::number(container.winId());
process->start(executable, arguments);

int status = app.exec();
process->close();
return status;
}

但下一个片段启动了一个新窗口,这不是我想要的

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QX11EmbedContainer container;
container.show();

QProcess * process = new QProcess(&container);
QString executable("konsole");
process->start(executable);

int status = app.exec();
process->close();
return status;
}

最佳答案

第一个示例之所以有效,是因为 xterm 能够重新设置其顶级小部件(X11 窗口)的父级。你告诉它用参数 -into <WinId> 这样做.

我不知道 Konsole 是否可以做到这一点,我不使用它,手册页似乎也没有谈论这个。

但这并不意味着它不可行,X Window 系统非常灵活,任何人都可以重新设置另一个窗口的父级(这就是窗口管理器向窗口添加装饰的方式)。

看看man 3 XReparentWindow ;-)

关于qt - QX11EmbedWidget 和 QX11EmbedContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102658/

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