如何添加一个自定义小部件到Qt 4.8.6

如何添加一个自定义小部件到Qt 4.8.6

问题描述:

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

任何帮助是极大的赞赏

+0

这是所有记录,并在Qt 4附带的文档中有示例。 –

阅读creating designer widgetsusing them,但简要地说:

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

还有an example需要关注。

Here是一个文档。简而言之,您只需在窗体中添加任何窗口小部件(例如QSpinBox以在设计器中绘制它),然后将其转换为所需的窗体。

要自定义小工具添加到Qt的设计师只需按照以下步骤:

  1. 在Qt Designer中创建一个新的Widget文件 - >新建 - >窗口小部件。
  2. 添加您的UI等,为这个小部件,并将其保存 - > - > MyWidget.ui
  3. 创建一个类“MyWidgetHandler”在MyWidgetHandler.h来处理这个小部件& CPP
  4. 在你的主窗口/对话框哪里你想显示这个小部件,从设计器的“容器”部分添加一个“小部件”。

    enter image description here

  5. 现在右键单击您刚才添加的“微件”容器,然后单击“升级为...”

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

干杯!

+0

如果我的用户界面与QSpinBox完全相同,该怎么办?我该如何解决它? – flashburn

+0

在这种情况下: - 跳过第1步和第2步 - 在第3步中,myWidgetHandler应该从QSpinBox派生。 - 您可以根据需要重写QSpinbox方法。 - 请记住,在主要的UI处理程序中,可以通过对象名称调用此自定义类,请参阅原始答案中第10点中的附加图像。 – Zaid