多个QApplications的问题

时间:2009-11-01 11:07:32

标签: qt

有人可以帮我理解在Qt for Embedded Linux上运行多个QApplication的问题是什么?请指出一些邮件列表线程的文档。

在浏览邮件列表中的一些邮件时,我看到一些评论说,在Qt中运行多个QApplication不受设计支持,为什么需要它?我怎样才能更清楚地理解这一点?

但是,在阅读文档“Qt for Embedded Linux Architecture”时,我没有找到任何说明我们不应该同时运行多个QApplication实例的内容。

我在嵌入式Linux平台(不是PC)上执行两个QApplication,其中一个是全屏模式。处于fullScreen模式的那个,即使收到mousePress个事件,它也没有获得键盘焦点。如果在normalMode中运行相同的应用,则会获得mousePress事件,后跟focusInEvent`。

有人可以提供指针吗?

3 个答案:

答案 0 :(得分:3)

您可以使用一个QApplication运行多个进程。

但是,对于嵌入式Linux的Qt,其中只有一个必须是QWS服务器。换句话说,您应该使用`-qws'开始第一个进程,而不使用。

开始所有其他进程

答案 1 :(得分:2)

QApplication是一个单例类,所以它的“单一”设计。每个程序只能有一个QApplication对象。

但是在Qt中,使用可以并行运行的QApplication类的qt程序数量没有固有的限制。你可以同时使用qt(很可能是QApplication)有多个程序。

可能这在你的邮件列表中有些混乱。

答案 2 :(得分:0)

我的猜测是,一个QApplication会接受鼠标事件或键盘事件,因此另一个不会得到它。

对于哪个QApplication基于在单个进程中拥有如此多的QApplication而接受哪些事件,它可能有点随机。

我无法想象为什么在一个进程中需要多个QApplication的用例。你能扩展你想要做的事吗?