是否可以放置任意程序(firefox、openoffice等)在QX11EmbedContainer里?花朵似乎在起作用。
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;
}发布于 2009-07-14 11:29:24
第一个示例之所以有效,是因为xterm能够为其顶层小部件(一个X11窗口)设置父级。您可以使用参数-into <WinId>告诉它这样做。
我不知道Konsole是否能做到这一点,我不使用它,手册页似乎也没有提到这一点。
但这并不意味着它不可行,X Window系统非常灵活,任何人都可以重写另一个窗口(这就是窗口管理器向窗口添加装饰物的方式)。
看看man 3 XReparentWindow ;-)
https://stackoverflow.com/questions/1102658
复制相似问题