找不到 ui 头文件 (ui_name.h)

use*_*246 5 c++ qt

我创建了表单,将其保存在项目目录中。现在我想添加一些代码。所以,我创建了头文件:

#ifndef SORTDIALOG_H
#define SORTDIALOG_H

#include <QtWidgets/QDialog>
#include <QtWidgets/QWidget>


#include "ui_sortdialog.h"


class SortDialog: public QDialog, public Ui::SortDialog
{
    Q_OBJECT
public:
    SortDialog(QWidget *parent=0);
    void setColumnRange(QChar first, QChar last);
}

#endif // SORTDIALOG_H
Run Code Online (Sandbox Code Playgroud)

在编写代码 Qt creator 看到 ui_sortdialog.h,例如,我可以看到“Ui”命名空间。但是当我试图编译器写到 ui_sortdialog.h 没有找到

C:\Qt\Qt5.1.1\Tools\QtCreator\bin\untitled2\sortdialog.h:8: error: ui_sortdialog.h: No such file or directory
 #include "ui_sortdialog.h"
                       ^
Run Code Online (Sandbox Code Playgroud)

小智 4

您创建了一个名为sortdialog的表单,对吧?如果您使用 Qt Creator 执行此操作,则应该将以下行添加到项目的 .pro 文件中:

FORMS += sortdialog.ui
Run Code Online (Sandbox Code Playgroud)

如果没有该行,请将其添加到 .pro 文件中。

当项目具有 .ui 文件时,会在构建过程中调用名为uic的命令。在您的情况下,这个uic(“ui 编译器”)负责生成 ui_sortdialog.h 。

您很少需要直接调用它,在 make 之前运行 qmake 应该可以为您完成(如果前面提到的 FORMS 行位于您的 .pro 文件中)。