在qt creator中将用户构建的小部件添加到ui文件

在qt creator中将用户构建的小部件添加到ui文件,qt,qt4,qt-creator,qt-designer,Qt,Qt4,Qt Creator,Qt Designer,qt creator的qt设计器部分有许多内置小部件。但是假设我想将在同一个qt项目中创建的自定义小部件添加到窗口的ui文件中。通过采取以下步骤: 使用主窗口创建一个新的QtGUI应用程序,我们将其称为窗口a 在项目中添加一个新的小部件,小部件只使用标准的UI组件,比如按钮。我们称之为小部件B 将小部件B的实例添加到窗口A 现在,我知道了一种方法,那就是: 在窗口A中,从可能的小部件列表的容器部分添加一个空白小部件(或小部件容器) 将它(小部件C)升级到小部件B 然而,问题是Qt Creator

qt creator的qt设计器部分有许多内置小部件。但是假设我想将在同一个qt项目中创建的自定义小部件添加到窗口的ui文件中。通过采取以下步骤:

  • 使用主窗口创建一个新的QtGUI应用程序,我们将其称为窗口a
  • 在项目中添加一个新的小部件,小部件只使用标准的UI组件,比如按钮。我们称之为小部件B
  • 将小部件B的实例添加到窗口A
  • 现在,我知道了一种方法,那就是:

  • 在窗口A中,从可能的小部件列表的容器部分添加一个空白小部件(或小部件容器)
  • 将它(小部件C)升级到小部件B
  • 然而,问题是Qt Creator的设计者将其视为一个通用的QWidget。因此,您不能将其添加到拆分器,或连接特定于该widget的信号/插槽


    那么,是否有其他方法可以使用qt creator将小部件B添加到ui文件中的窗口A?谢谢。

    我不确定是否理解了您的问题,因此我可能会问错误的问题。您确定您的“B”小部件是QdesignRecustomWidgetInterface的子类吗?这应该会公开您的小部件/插件提供的所有内容


    最后一个注意:我的一个朋友试图添加一个像你一样的自定义小部件。在LoL4T0告诉你的描述过程的结尾,他发现你必须编译一个与QtCuror /设计器相同的编译器的插件。这是因为我们知道C++不保持ABI可压缩性(而不是C语言)。比如:名称处理可以在不同的编译器之间改变,数据加载到寄存器的方式可以改变……等等。我的朋友试图用mingw编译插件,但他发现qtcreator是用visual studio编译器编译的。因此,如果你想在Windows上部署插件,或者用visual studio编译插件,或者ave从头开始编译qtcreator/designer。

    你可以为designer:Hmm.创建自定义小部件。看起来如果我遵循此过程,任何想要编辑此项目的人都必须单独安装插件,是吗?我希望它可以在不安装插件的情况下自动打开项目,如果这是一个并非都是可能的。@LeifAndersen这不需要插件来打开项目,只是为了查看新的小部件并与之交互。根据您的项目和团队,可能会有一个插件的中央存储库;这是我们公司所做的。但除此之外,我不知道还有其他选择。