C++ 两个qt ui头文件命名空间问题

C++ 两个qt ui头文件命名空间问题,c++,qt,user-interface,C++,Qt,User Interface,我有两个ui头—ui_FlowChartEditor.h和ui_Notepad.h 此代码存在问题: //ui_FlowChartEditor.h namespace Ui { class FlowChartEditorClass: public Ui_FlowChartEditorClass {}; } // namespace Ui “Ui”名称空间重复,所以我通过更改名称空间的名称来解决这个问题 像这样: //ui_FlowChartEditor.h namespace Ui_F

我有两个ui头—ui_FlowChartEditor.h和ui_Notepad.h

此代码存在问题:

//ui_FlowChartEditor.h
namespace Ui {
    class FlowChartEditorClass: public Ui_FlowChartEditorClass {};
} // namespace Ui
“Ui”名称空间重复,所以我通过更改名称空间的名称来解决这个问题

像这样:

//ui_FlowChartEditor.h
namespace Ui_FlowChartEditor {
    class FlowChartEditorClass: public Ui_FlowChartEditorClass {};
} // namespace Ui
它在调试配置下工作,但在发布配置下不工作

编译器说:[错误C2653:'Ui_FlowChartEditor':不是类或命名空间名称(编译源文件FlowChartEditor.cpp)],等等

有解决这个问题的办法吗

提前谢谢

通过@zgyarmati的解决方案,我解决了这个问题。

我在Qt设计器中更改了objectName。

ui_uu头文件如下所示:

namespace FlowChartEditorUi {
    namespace Ui {
        class FlowChartEditorClass : public Ui_FlowChartEditorClass {};
    } // namespace Ui
} // namespace FlowChartEditorUi

Thx.

通过
uic
从表单(.ui)文件中重新生成
ui.*.h
文件。您仅为调试版本更改了生成的
ui.*.h
文件,而不是为发布版本更改了文件,因此在那里有原始的uic生成的文件。 您也可以更改发布版本的文件,但是 您不应该更改生成的文件,因为它们将被覆盖。 要为ui类设置名称空间,当您在QtCreator中创建设计器窗体类时,请在“类名”字段中指定具有名称空间的名称,例如ui_Notepad::Notepad class,生成的
ui.*.h
文件将包含该名称空间

如果您已经有表单,则还可以在QtCreator表单编辑器中相应地更改表单的“objectName”属性

//ui_Notepad.h
namespace Ui_Notepad {
    class NotepadClass: public Ui_NotepadClass {};
} // namespace Ui
namespace FlowChartEditorUi {
    namespace Ui {
        class FlowChartEditorClass : public Ui_FlowChartEditorClass {};
    } // namespace Ui
} // namespace FlowChartEditorUi