作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
可以在 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/
我是一名优秀的程序员,十分优秀!