如何让Qt使用用户定义的类?

时间:2018-03-22 14:51:43

标签: windows-10 qt5 qt-creator qplaintextedit custom-widgets

我想在Ui_MainWindow类中使用用户定义的类而不是Qt,这样我就可以在Qt的GUI Designer上使用该控件。例如,目前定义如下:

class Ui_MainWindow
{
public:
    QPlainTextEdit *list;
 // ...
};

我想使用我的用户定义的类:

class Ui_MainWindow
{
public:
    MyCustomQPlainTextEdit *list;
 // ...
};

我不能在ui_mainwindow.h头文件中手动修改它,因为每次GUI设计器生成元数据时该值都将丢失。 我可以阻止Qt使用该类,以便我可以使用自己的吗?

1 个答案:

答案 0 :(得分:3)

如果您的MyCustomQPlainTextEdit继承自QPlainTextEdit,则可以将您的ui文件中的小部件“宣传”到您的自定义类。

在Qt Creator中打开您的ui文件,右键单击小部件并选择Promote To

[enter image description here]

然后在打开的对话框中,添加您的自定义类,如下所示:

[enter image description here]

如果需要,请务必更改头文件的路径,具体取决于项目的设置方式。然后点击Add

添加自定义类后,点击Promote,然后点击生成的ui_<blah>.h中的自定义类。