如何让 Qt 使用用户定义的 class?
How can I make Qt use a user-defined class?
我想使用用户定义的 class 而不是 Qt 在 Ui_MainWindow
class 中生成的,这样我就可以在 Qt 的 GUI 设计器上使用该控件。例如,目前它被定义为:
class Ui_MainWindow
{
public:
QPlainTextEdit *list;
// ...
};
我想使用我的用户定义 class:
class Ui_MainWindow
{
public:
MyCustomQPlainTextEdit *list;
// ...
};
我不能在 ui_mainwindow.h 头文件中手动修改它,因为每次 GUI 设计器生成其元数据时该值都会丢失。
我可以阻止 Qt 使用那个 class 以便我可以使用我自己的吗?
如果您的 MyCustomQPlainTextEdit
继承自 QPlainTextEdit
,您可以 "promote" 将 ui 文件中的小部件添加到您的自定义 class。
在 Qt Creator 中打开 ui 文件,右键单击小部件并 select Promote To
[
然后在打开的对话框中,像这样添加您的自定义 class:
[
如果需要,请务必根据项目的设置方式更改头文件的路径。然后点击Add
。
添加自定义 class 后,单击 Promote
瞧,生成的 ui_<blah>.h
中的自定义 class。
我想使用用户定义的 class 而不是 Qt 在 Ui_MainWindow
class 中生成的,这样我就可以在 Qt 的 GUI 设计器上使用该控件。例如,目前它被定义为:
class Ui_MainWindow
{
public:
QPlainTextEdit *list;
// ...
};
我想使用我的用户定义 class:
class Ui_MainWindow
{
public:
MyCustomQPlainTextEdit *list;
// ...
};
我不能在 ui_mainwindow.h 头文件中手动修改它,因为每次 GUI 设计器生成其元数据时该值都会丢失。 我可以阻止 Qt 使用那个 class 以便我可以使用我自己的吗?
如果您的 MyCustomQPlainTextEdit
继承自 QPlainTextEdit
,您可以 "promote" 将 ui 文件中的小部件添加到您的自定义 class。
在 Qt Creator 中打开 ui 文件,右键单击小部件并 select Promote To
[
然后在打开的对话框中,像这样添加您的自定义 class:
[
如果需要,请务必根据项目的设置方式更改头文件的路径。然后点击Add
。
添加自定义 class 后,单击 Promote
瞧,生成的 ui_<blah>.h
中的自定义 class。