首页 > 解决方案 > Qt 插件可以改变主应用程序创建的 UI 吗?

问题描述

我构建了一个主 Qt 应用程序来加载模型文件(某种 3d 模型文件,如 STL)。然后我利用树小部件来显示加载文件的信息。然后我构建了一个 Qt 插件来修改加载的文件。

当我在插件中完成编辑文件后,是否可以刷新在主应用程序中创建的树 UI?或者,插件如何与主应用程序通信(例如告诉主应用程序它的数据已被修改,它应该刷新它的 UI)?

标签: c++qt

解决方案


我终于用信号/槽解决了这个问题。首先,我构建了一个主应用程序和插件都知道的公共库。然后我在公共库中定义了一个信号(当 UI 应该改变时会发出),并将它与主应用程序中定义的插槽连接起来。之后,当我通过插件更改数据时,我会让公共库发送信号,并且可以更改主 UI。
为什么不在插件中发送信号?因为我找不到直接将插件中的信号与主要应用程序中的插槽连接的方法。我希望我已经很好地解释了这一点,并且还有其他可能的解决方案。


推荐阅读