编译期间找不到文件

时间:2011-07-29 23:50:55

标签: qt

下面的代码有什么问题?当我编译它时,我得到一个警告,找不到文件。有些东西是无效的。我可能在这里犯了一些错误。我认为问题可能在于我从QWidget继承的方式。

   #include <QtGui/QApplication>
    #include "filedialogs.h"

    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);

        FileDialogs w;
        w.openFile();

        return 0;
    }

#ifndef FILEDIALOGS_H
#define FILEDIALOGS_H

    #include <QWidget>
    class QFileDialog;

    class FileDialogs : public QWidget
    {

    public:
        FileDialogs(QWidget *parent = 0);
        ~FileDialogs();

        void openFile();
    };

    #endif // FILEDIALOGS_H

#include <QFileDialog>
#include "filedialogs.h"

FileDialogs::FileDialogs(QWidget *parent)
    : QWidget(parent)
{
}

FileDialogs::~FileDialogs()
{

}

void FileDialogs::openFile()
{
  QString filename = QFileDialog::getOpenFileName(
      this,
      tr("Open Document"),
      QDir::currentPath(),
      tr("Document files (*.doc *.rtf);;All files (*.*)") );

  if( !filename.isNull() )
  {
    qDebug( filename.toAscii() );
  }
}

#-------------------------------------------------
#
# Project created by QtCreator 2011-07-29T19:06:33
#
#-------------------------------------------------

QT       += core gui

TARGET = exX
TEMPLATE = app


SOURCES += main.cpp\
        filedialogs.cpp

HEADERS  += filedialogs.h

2 个答案:

答案 0 :(得分:1)

MOC编译器发出此错误消息。您缺少Q_OBJECT宏。把它放在你的类声明中:

class FileDialogs : public QWidget
{
    Q_OBJECT

    public:
    ....

答案 1 :(得分:0)

我知道这个问题很老。但就我而言,这是另一个问题。 我必须在.pro文件中手动添加标题的路径。

INCLUDEPATH += src/subdir