QT: ui_*文件未生成



我知道这是一个已经被很多用户触及的话题,但我没有找到一个有效的解决方案;我用QtDesigner创建了两个表单文件:

interfaccia_test.uiinterfaccia.ui

我执行qmake -project命令,获取以下.pro文件:

TEMPLATE = app
TARGET = qtgeo
INCLUDEPATH += . include
# Input
HEADERS += interfaccia.h include/localizzazione.hpp
FORMS += interfaccia.ui interfaccia_test.ui
SOURCES += interfaccia.cpp main.cpp src/localizzazione.cpp
src/SimpleSIFT.cpp

所以我给qmake命令,但它没有产生ui_interfaccia.hui_interfaccia_test.h像我期望的;然后我尝试make我的项目,我有

interfaccia.h:19:28: fatal error: ui_interfaccia.h: File o directory not found
#include "ui_interfaccia.h"
                        ^

interfaccia.h我的文件,使用GUI我做。

对于任何给定的项目,您应该只使用一次qmake -project 。如果你有一堆文件,想要得到一个项目模板,这意味着作为一个起点。然后,这个模板将被一个人——你——修改。

构建基于qmake的Qt项目的正常方法是:

qmake
make

ui_xxx.h文件是由make生成的,不是qmake。以下是各种工具的功能列表:

  • qmake -project生成.pro文件模板,供您修改以适应项目。您的最终用户不应该使用它,也不应该在项目进行之后使用它。保持.pro文件最新是你的工作。
  • qmakecmake为构建系统生成makefile。
  • makeninja构建项目,生成所有其他文件。

有两个附加点:

  1. 如果您包含了一个不会生成的文件,那么qmake将不会生成ui_xxx.h文件。因此,例如,如果它将生成一个名为ui_Interfaccia.h的文件,但您包含了ui_interfaccia.h,那么将生成名称错误的文件和名称正确的文件

    这一点很重要,即使你在一个不区分大小写的操作系统/文件系统上构建所有东西。

  2. 您包含的文件名称错误。正确的名称是ui_ClassName.h,其中ClassName是.ui文件中的类的名称(查看前几行),具有相同的大写。

相关内容

  • 没有找到相关文章

最新更新