QtDesigner自定义小部件

时间:2018-10-24 09:42:47

标签: c++ qt c++11

美好的一天

  1. 我正在编码我的QtDesigner插件。根据官方文件 我创建了 QDesignerCustomWidgetCollectionInterface Collection 子类并实现了 通过 QDesignerCustomWidgetInterface 的子类为每个小部件分隔插件。 我已经成功完成了,并具有* .dll插件。 我将其复制到正确的\ plugins \ designer文件夹中。

  2. 因为我正在Windows下工作,并使用msvc2015的prebuil QtCreator 我必须使用给定的 mingw 编译器从源代码重新编译QtCreator。 我已经成功完成了。现在,我可以在正确的环境下从 cmd 运行重新编译的QtCreator。

  3. 所有这些麻烦之后,我可以运行 QtCreator-mingw 并查看设计器面板中的插件。 并将其拖放到* .ui。 我可以通过设计器编辑 Q_PROPERTY 属性。

我的问题如下:   -拖放后,我看到了以前编写的小部件(3);   -关闭 QtCreator-mingw 并在* .ui文件中重新打开它   我看不到 MyWidget ,也无法编辑 Q_PROPERTY

注意:   -我使用用户自定义Qt Designer的向导,并且 Collection 是自动生成的。   -小部件插件也是如此。   -我刚刚编辑了 doXml 方法。   -我无法在设计模式下看到小部件,但编译和运行已完成。所有的MyWidget都在那里。

有人知道我问题的根源吗?

1 个答案:

答案 0 :(得分:0)

函数name返回AnalogConponent。但是我的小部件位于命名空间gui::iocomp中。因此,当我将名称返回值更改为return gui::iocomp::AnalogConponent并向domXml函数添加类似的构造时,它们都可以正常运行,并且我可以重新打开IDE并得到相同的结果,并看到 Q_PROPERTY 的正确描述在设计器中(在更改为动态选项之前)。

我认为官方文档失去了这一方面。