【问题标题】:how to add a custom widget to Qt 4.8.6如何将自定义小部件添加到 Qt 4.8.6
【发布时间】:2016-07-07 21:18:40
【问题描述】:

我试图弄清楚如何将自定义小部件添加到 Qt Designer。到目前为止,我一直没有成功。对 Qt 非常陌生。我正在运行 Qt 4.8.6。我知道有一个更新的版本,但由于项目限制,我必须坚持使用这个。本质上,我需要添加一个十六进制旋转框,即一个以十六进制而不是十进制计数的旋转框。我什至找到了code that implements it。它确实解释了how to integrate it into Qt Designer,但是它解释了版本 3。有人可以提供帮助吗?

非常感谢任何帮助

【问题讨论】:

  • 都有文档记录,Qt 4自带的文档中有例子。

标签: c++ qt


【解决方案1】:

了解creating designer widgetsusing them,但要简短:

  • 子类 QDesignerCustomWidgetInterface 为您的自定义小部件创建自定义设计器插件
  • 构建并安装您的设计器插件
  • 告诉设计师你的插件位置,或者只是确保它安装到$QTDIR/plugins/designer

还有an example 可以关注。

【讨论】:

    【解决方案2】:

    Here 是一个文档。简而言之,您只需将任何小部件(例如 QSpinBox 以在设计器中将其绘制好)添加到您的表单并将其转换为所需的。

    【讨论】:

      【解决方案3】:

      要向 Qt 设计器添加自定义小部件,只需按照以下步骤操作:

      1. 在 Qt 设计器中创建一个新的小部件 File->New->Widget。
      2. 为这个小部件添加你的 UI 等并保存它->->MyWidget.ui
      3. 在 MyWidgetHandler.h 和 cpp 中创建一个“MyWidgetHandler”类来处理这个小部件
      4. 在您想要显示此小部件的主窗口/对话框中,从设计器的“容器”部分添加一个“小部件”。

      5. 现在右键单击刚刚添加的“Widget”容器,然后单击“Promote to...”

      6. 这应该会打开一个对话框。您可以在此处选择基类以继承您案例 QComboBox 中的属性,或者只选择 QWidget 类。
      7. 接下来输入完整的类名,即带有命名空间,例如:“blah::MyWidgetHandler”
      8. 在“头文件”部分中,只需添加此类头文件的路径即可。这应该是一个可解析的路径。例如:“UI/MyWidgetHandler.h”或“C:/UI/MyWidgetHandler.h”
      9. 现在点击“升级”并保存您的 MainWindow.ui
      10. 属性编辑器现在应该显示您的自定义类类型,例如:blah::MyWidgetHandler。以及您选择的基类的属性。
      11. 不要忘记在处理程序类中设置 UI,并在主窗口处理程序中包含标头。

      干杯!!!

      【讨论】:

      • 如果我的 UI 与 QSpinBox 完全相同怎么办?我该怎么办?
      • 在这种情况下: - 跳过第 1 步和第 2 步 - 在第 3 步中,myWidgetHandler 应该从 QSpinBox 派生。 - 您可以在实现中随心所欲地覆盖 QSpinbox 方法。 - 请记住,在主 ui 处理程序中,可以通过对象名称调用此自定义类,请参阅原始答案中第 10 点中的附加图像。
      猜你喜欢
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多