2013-12-14 85 views
2

我創建了表單,將其保存在項目目錄中。現在我想添加一些代碼。 所以,我創建的頭文件:ui頭文件(ui_name.h)未找到

#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 

編寫代碼Qt C​​reator的過程中看到ui_sortdialog.h,和我舉個例子,可以看到 「UI」 的命名空間。但是,當i'n試圖編譯寫道,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" 
        ^
+1

你你的UI文件添加到項目中,比如'表格+ = myForm會.ui'? – vahancho

回答

3

創建了名爲形式sortdialog,對不對? 如果您在使用Qt Creator的做到了,它應該將下面一行添加到您的項目的.pro文件:

FORMS += sortdialog.ui 

如果沒有這樣的行,將其添加到.pro文件。

當項目具有.ui文件時,名爲uic的命令被稱爲構建過程的一部分。這個uic(「ui compiler」)負責生成ui_sortdialog.h,在你的情況下。

你很少需要直接調用它,在make之前運行qmake應該爲你做(如果上述FORMS行在你的.pro文件中)。

+0

如何檢查由uic生成的ui頭文件。我的意思是,該文件保存在哪裏? – jingweimo

1

我有這個問題。 以下是我必須解決的問題: 請確保sortdialog.cpp和sortdialog.ui的都在的pro文件中適當的部分(適當的情況下,正好與文件名中的上限或下限)一致。

2

當build目錄與*.pro文件位於同一文件夾時,Qt有時會遇到困難。

我建議確保您的構建目錄在目錄結構中比項目文件高一級。

下面的目錄結構很容易出現錯誤:

MyProj/proj.pro
MyProj/builds/

下面的目錄結構將避免此問題:

MyProj/proj.pro
MyProjBuild/