在 QT 应用程序中嵌入应用程序(在本例中为终端)
我正在编写一个 QT 应用程序,我需要在 QDialog 中嵌入一个终端(我们说 xterm),就像一些 KDE 应用程序(参见 kdevelop/kate/...)。
我一直在尝试: - QX11EmbedContainer 放置到我的 QDialog 的 QLayout 中 - 我想要执行的程序的 QProcess
我希望 QProcess 在 QX11EmbedContainer 内运行,但它不起作用。
问题是我无法将 xterm 放入 QX11EmbedContainer 中,我获得的唯一东西是 xterm 窗口(不幸的是与我的 QDialog 分开)。 有人遇到同样的问题吗?
I am writing a QT application and I need to embed a terminal (we say,xterm) within a QDialog, like some KDE application (see kdevelop/kate/...).
I've been trying with:
- QX11EmbedContainer placed into the QLayout of my QDialog
- QProcess for the program I want to excecute
I expect the QProcess running within the QX11EmbedContainer, but it does not work.
The problem is that I can't put the xterm into the QX11EmbedContainer, the only thing I obtain is an xterm window (unfortunately separated from my QDialog).
Does anybody got the same problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
抱歉,在发布此网站之前我已经尝试过您的解决方案,但它不起作用。
我已经解决了切换到 kdelibs 并使用这些导入和这段代码
Sorry, I've tried your solution before posting oh this site and it does not work.
I've solved switching to kdelibs and using those imports and this code
您需要将容器的窗口 ID 传递给 xterm。
如果您查看 Qt 帮助中 QX11EmbedContainer 的示例,它只是将窗口 id 传递给 QProcess。 将其更改为
已将“-into”添加到参数中的位置。 来自 XTerm 手册页:
You need to pass the window ID of the container to the xterm.
If you look at the example in the Qt help for QX11EmbedContainer, it just passes the window id to the QProcess. Change this to
where "-into" has been added to the arguments. From the XTerm man page: