【问题标题】:Qt ui file does not compile in to C++ headerQt ui 文件未编译为 C++ 头文件
【发布时间】:2012-10-18 14:33:23
【问题描述】:

我在 Visual Studio 2010 中创建了一个 Qt 应用程序项目。它包含以下文件

Form Files
  mainwindow.ui
Header Files
  mainwindow.h
Source Files
  mainwindow.cpp

它还使用名为ui_mainwindow.h 的生成代码文件。据我所知,应该重新生成此文件以响应对 .ui 文件所做的更改。但是,如果我在 Designer 中打开 ui 文件并进行更改,应用程序中不会出现任何更改。

我必须在 Qt Designer 中转到 Form -> View Code -> Save As 并手动保存 ui_mainwindow.h 文件。

【问题讨论】:

标签: c++ visual-studio-2010 qt


【解决方案1】:

.ui 文件应定义自定义构建工具以在其上使用uic 并生成适当的ui_*.h 文件。

自定义构建工具命令行可能如下所示:

uic.exe "$(InputPath)" -o "ui_$(InputName).h"

另外,为了正确检测依赖关系并清理命令删除生成的文件,请将ui_$(InputName).h 添加到自定义构建工具输出。

不要忘记对所有配置和平台进行更改。

不过,正确的做法是创建适当的.pro 文件,然后使用qmake -tp vc project.pro 生成Visual Studio 项目。所有编译器和链接器设置都应在 .pro 文件中进行调整,而不是在每次更改 .pro 文件后应重新生成的 Visual Studio 项目中进行调整。

【讨论】:

    【解决方案2】:

    我无意冒犯,但您在运行项目之前保存了 .ui 文件吗?

    当我需要编辑 ui 文件时,我使用设计器更改它们,当我想运行它时,它将重新编译/moc/无论更改的 ui 文件及其 .h/.cpp 文件。

    【讨论】:

    • 感谢您的回复。我确实在Designer中保存了.ui文件,但是每次保存.ui文件时是否需要重新加载VS项目?
    • 不,应该不需要它。再次运行时,vs 应该为更改的界面重建 ui-.h/.cpp 文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多