如何从另一个 QT 应用程序访问 Qt UI 的 QObject?

Posted

技术标签:

【中文标题】如何从另一个 QT 应用程序访问 Qt UI 的 QObject?【英文标题】:How to access the QObject of a Qt UI from another QT application? 【发布时间】:2014-02-24 13:51:46 【问题描述】:

我打算在 linux 中实现一个简单的测试 QT 应用程序,它启动一个在嵌入式 linux 平台上运行的 QT UI 应用程序来验证它。我希望能够从测试应用程序向 UI 发送信号,例如按下 GUI 上的按钮,然后检查信号是否在 QT UI 应用程序上做出了预期的更改。我知道有一些工具,如 Squish、Testability Driver,可以挂钩正在运行的 QT 应用程序并访问每个图形元素(例如按钮)的属性。 我进行了很多搜索,但找不到任何合适的解决方案。如果有人可以介绍一个合适的解决方案?

【问题讨论】:

我不明白你为什么要从一个 qt 应用程序向另一个应用程序发送信号。您是否正在寻找一种在两个应用程序之间进行通信的方法? 我建议使用 Squish 进行测试、监控/调试,请查看 gammaray:kdab.com/kdab-products/gammaray 【参考方案1】:

在 Unix 平台上,您可以使用 dbus。否则,您必须推出自己的机制,或使用第三方工具。

【讨论】:

以上是关于如何从另一个 QT 应用程序访问 Qt UI 的 QObject?的主要内容,如果未能解决你的问题,请参考以下文章

从另一个 std::thread 调用 Qt 对象方法

如何从另一个线程关闭对话框? Qt

当 MainWindow 从另一个类(不在主函数中)启动时,QT ui 未显示

QT QML - 从另一个类访问 qml 模型

Qt GUI 从另一个类访问 MainWindow 的最简单方法

Qt一个UI如何访问另一个源文件的变量