【问题标题】:QtDesigner custom widgetQtDesigner 自定义小部件
【发布时间】:2019-03-28 16:20:34
【问题描述】:

早安,

  1. 我正在编写我的 QtDesigner 插件。根据官方文档 我创建了 QDesignerCustomWidgetCollectionInterfaceCollection 子类并实现了 通过 QDesignerCustomWidgetInterface 的子类为每个小部件分离插件。 我已经成功完成并拥有 *.dll 插件。 我将它复制到正确的 \plugins\designer 文件夹中。

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

  3. 在所有这些麻烦之后,我可以运行 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。

标签: c++ qt c++11


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2013-03-12
    • 2014-03-12
    • 2015-07-27
    • 1970-01-01
    相关资源
    最近更新 更多