下面的代码有什么问题?当我编译它时,我得到一个警告,找不到文件。有些东西是无效的。我可能在这里犯了一些错误。我认为问题可能在于我从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
答案 0 :(得分:1)
MOC编译器发出此错误消息。您缺少Q_OBJECT宏。把它放在你的类声明中:
class FileDialogs : public QWidget
{
Q_OBJECT
public:
....
答案 1 :(得分:0)
我知道这个问题很老。但就我而言,这是另一个问题。 我必须在.pro文件中手动添加标题的路径。
INCLUDEPATH += src/subdir