我如何让我的Qt控制台应用程序与另一个Qt gui应用程序通信
How do I get my Qt console app to communicate with another Qt gui app?
我的项目需要有两个部分。第一部分是从Qt控制台窗口获取输入。输入被处理,一个信号被发送到Qt gui应用程序(第二部分),它相应地更新UI。我如何实现这一点?这些可以是同一个应用程序的一部分,还是我需要保持两者分开,并在两者之间进行通信?
请告诉我必须使用的具体类和函数。
我看了一下QProcess,但不确定它是否能达到目的。
我认为在Qt中同时运行控制台和GUI应用程序是不可能的。你可以尝试创建。exe文件,这将是你的控制台和另一个。exe文件,这将是GUI应用程序。
要从GUI应用程序运行控制台,你应该使用QProcess
,你必须指定控制台可执行文件的绝对路径。
关于QProcess
的更多信息可以在这里找到
如果您在UNIX或GNU/Linux系统上工作,您可以使用QtDBus模块。
您可以编写两个软件,一个使用控制台,另一个使用GUI,并通过D-Bus进行通信。你可以在这里找到一些例子。
QtDBus模块是一个unix专用库,您可以使用D-Bus协议实现IPC。它将Qt的信号和插槽机制扩展到IPC级别,允许一个进程发出的信号连接到另一个进程的插槽。这个D-Bus页面有关于如何使用QtDBus模块的详细信息。
也可以使用Qt封装的TCP/IP套接字进行通信。这是一个便携的解决方案。
Qt财富服务器和Qt财富客户端是一个很好的例子,并一步一步地解释。
Qt提出的进程间通信(IPC)的所有解决方案都在本页给出。
作为Qt 5.9,有一个模块目前处于技术预览名称QtRemoteObjects下,它为QObjects提供Qt原生IPC,它易于使用,可用于在两个进程之间共享信号/插槽和模型
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 如何在qt中同步应用程序和显示器的刷新率?
- "string.h"在构建适用于iOS的qt应用程序中找不到消息
- Qt QML桌面应用程序自动化测试
- Qt creator 4.11,在应用程序输出面板中创建一个链接
- 使用 Bazel 编译 QT 应用程序时访问资源
- 将 Crashpad 与 Windows Qt 应用程序集成
- 在Visual Studio中单实例Qt应用程序版本5.11.1中,在所有其他窗口的顶部打开Qt MainWindow
- 在 Ubuntu 服务器上运行 QT 应用程序时崩溃
- 如何在Android设备上解析Qt应用程序的ClassNotFoundEception?
- Qt应用程序找不到第三方DLL并崩溃
- 在 Linux 上部署 Qt 应用程序
- 为什么Qt Creator的应用程序输出不能从spdlog记录器打印
- QT 样式表主题,适用于使用属性选择器的整个应用程序
- 构建一个真正、完全静态的Qt 5框架和应用程序(Qt 5.8之后)
- 无法从对话框中关闭应用程序(Qt 应用程序)
- 将Poco C++库包含到Mac OS X上的Qt Quick应用程序(Qt Creator)中
- 独立应用程序Qt
- 打开文件时基于 Qt 的应用程序'Qt platform plugin windows not found'问题
- 我的应用程序"Qt"在我的计算机中运行,但在我朋友的计算机上无法运行