在修改Qt 自动生成的 ui类名时,可能会出现的错误
abcwidget.cpp:29:12: error: allocation of incomplete type 'Ui::AbcWidget'
abcwidget.h:17:7: note: forward declaration of 'Ui::AbcWidget'
修改方法
Refactor---rename----法, 以及手动修改法;
需要用到内置编辑器,以及外部编辑器。
在修改 ui文件时,需要使用外部编辑器,才能修改。内部编辑器无效?
步骤
1. 修改命名空间
namespace Ui {
class AbcWidget; //"AbcWidget": 在 Qt Creator中自动修改, Refactor---rename
}
2. 修改类名
class AbcWidget : public QWidget //"AbcWidget": 在 Qt Creator中自动修改, Refactor---rename
{...}
3.1. 手动修改自动生成的 ui_xxx.h头文件
#include "ui_abcwidget.h" //"ui_abcwidget.h": 手动修改,注意 Qt官方默认的命名规则,文件名“小写”。
3.2. ui的头文件名等,如 abcwidget.h头文件
相应的 .h/.cpp文件名,可能也需要 手动修改。
4. 在外部编辑器修改设计师 ui文件
abcwidget.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AbcWidget</class> //"AbcWidget": 手动修改,需要在外部的编辑器中才能修改。
<widget class="QMainWindow" name="AbcWidget"> //"AbcWidget": 手动修改,需要在外部的编辑器中才能修改。
注意:Qt5
自动生成的 ui 文件,文件名和类名,是有密切的关联关系的,不能随意更改。当然,不是自动生成的,则可由用户自行决定。
1. abcwidget.h /.cpp --->>>自动生成 >>>ui_abcwidget.h /abcwidget.ui 。
2. class AbcWidget 会在 abcwidget.ui 文件中自动包含。文章来源:https://www.toymoban.com/news/detail-737728.html
3. 命名空间及相关需要单独修改。文章来源地址https://www.toymoban.com/news/detail-737728.html
到了这里,关于Qt 修改自动生成的 ui类名的方法和步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!