首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QX11EmbedWidget和QX11EmbedContainer

QX11EmbedWidget和QX11EmbedContainer
EN

Stack Overflow用户
提问于 2009-07-09 08:56:45
回答 1查看 4.9K关注 0票数 3

是否可以放置任意程序(firefox、openoffice等)在QX11EmbedContainer里?花朵似乎在起作用。

代码语言:javascript
复制
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;
}

但下一个代码片段将启动一个新窗口,而不是我想要的窗口

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-14 11:29:24

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

我不知道Konsole是否能做到这一点,我不使用它,手册页似乎也没有提到这一点。

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

看看man 3 XReparentWindow ;-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1102658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档