单个 Qt 应用程序可以在多个 X 显示器上打开窗口吗?
Posted
技术标签:
【中文标题】单个 Qt 应用程序可以在多个 X 显示器上打开窗口吗?【英文标题】:Can a single Qt application open windows on more then one X display? 【发布时间】:2013-01-22 09:35:47 【问题描述】:我有一个 Qt 应用程序(在 Linux 上运行),它应该在另一台 X 服务器上打开一个额外的窗口,在远程计算机上运行。
有没有办法在 Qt 中做到这一点?
我希望避免更复杂的设置,例如 - DMX(在多个其他 X 服务器之上的虚拟 X 服务器)http://dmx.sourceforge.net/,或 - 为额外的窗口创建第二个应用程序,以及两个应用程序之间的某种通信
【问题讨论】:
程序中只能有一个QApplication
对象,一个QApplication
只能与一个Display
对话。这是一个基本的限制。所以不,你不能在 Qt 中这样做。
谢谢,n.-m。这就是我想知道的。起初我没有看到您的答案,因为您将其添加为评论而不是答案。我想我无法避免创建第二个应用程序。
【参考方案1】:
您可以尝试生成一个新进程,并将其 DISPLAY 环境变量设置为另一个 X 服务器。
首先尝试从 bash 执行它,看看它是否有效,因为我不完全确定:
export DISPLAY=:0.0
./my_qt_application
用您的其他 X 服务器替换 :0.0
。
【讨论】:
有效,但并没有真正解决问题:我仍然会有两个显示器的单独进程,并且需要实现它们之间的通信。 是的,我看到了您的其他答案,但需要一些时间来阅读 QX11EmbedWidget 的文档。 你说得对,我删除了它。好吧,那么使用另一个过程将是你最好的选择。您可以尝试以某种方式直接使用 Xlib,但我怀疑它会起作用,而且不会很容易。我认为这里没有简单的解决方案。以上是关于单个 Qt 应用程序可以在多个 X 显示器上打开窗口吗?的主要内容,如果未能解决你的问题,请参考以下文章