【发布时间】:2019-03-28 16:20:34
【问题描述】:
早安,
我正在编写我的 QtDesigner 插件。根据官方文档 我创建了 QDesignerCustomWidgetCollectionInterface 的 Collection 子类并实现了 通过 QDesignerCustomWidgetInterface 的子类为每个小部件分离插件。 我已经成功完成并拥有 *.dll 插件。 我将它复制到正确的 \plugins\designer 文件夹中。
因为我在 Windows 下工作并使用 msvc2015 的预构建 QtCreator 我必须使用给定的 mingw 编译器从源代码重新编译我的 QtCreator。 我已经成功地做到了。现在我可以使用正确的环境从 cmd 运行我重新编译的 QtCreator。
在所有这些麻烦之后,我可以运行 QtCreator-mingw 并在设计师调色板中查看插件 并将其拖放到 *.ui。 我可以通过设计器编辑 Q_PROPERTY 属性。
我的问题如下: - 拖放后,我看到了前面写的小部件 (3); - 关闭QtCreator-mingw后在*.ui文件中重新打开 我看不到 MyWidget,也无法编辑 Q_PROPERTY。
注意: - 我使用用户自定义 Qt 设计器的向导,Collection 是自动生成的。 - 小部件插件也是如此。 - 我刚刚编辑了 doXml 方法。 - 我在设计模式下看不到小部件,但编译和运行已完成。所有的 MyWidget 都在那里。
有人知道我的问题的根源是什么吗?
【问题讨论】:
-
请提供更多代码,从您的
doXml函数开始 -
我打错了,不是 doXml 而是 domXml 并且内容类似于 example。我在 Designer 中有这种行为。
-
函数
name返回什么?是否与domXml中的内容匹配? -
函数
name返回AnalogConponent。但是我的小部件放置在命名空间gui::iocomp中。因此,当我更改name返回值时,一切正常,我可以以相同的结果重新打开 IDE。