C++ 两个qt ui头文件命名空间问题
我有两个ui头—ui_FlowChartEditor.h和ui_Notepad.h 此代码存在问题: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_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