Консольное приложение Qt «ВНИМАНИЕ: QApplication не был создан в потоке main ()»

Я создаю очень простое консольное приложение C ++ QT из приведенного здесь примера переполнения стека.

Как использовать QFileSystemWatcher для мониторинга папки на предмет изменений

Код точно такой же, как и код в этом приложении, и я разрабатываю с помощью пользовательского интерфейса Qt, Qt Creator с MinGW 32bit. Я выбрал консольное приложение из проектов, которые я мог выбрать, так как мне не нужен графический интерфейс пользователя. Как только приложение завершило загрузку, приложение отображает сообщение об ошибке «ПРЕДУПРЕЖДЕНИЕ: QApplication не был создан в потоке main ()» и ничего не делает.

Я попытался отладить приложение, но не получил никаких точек останова, я не думаю, что отладка работает в редакторе.

Я быстро пошел по другому пути и изменил QApplication на QCoreApplication, когда я разрабатываю консольное приложение, но получаю точно такое же сообщение об ошибке.

filesystemreceiver.h

#ifndef FILESYSTEMRECEIVER_H
#define FILESYSTEMRECEIVER_H

#include <iostream>

using namespace std;

#include <QtCore/QApplication>
#include <QtCore/QFileSystemWatcher>
#include <QtCore/QDebug>
#include <QtWidgets/QWidget>
#include <QtWidgets/QMessageBox>

class MyClass : public QWidget
{
    Q_OBJECT
public:
    MyClass(QWidget* parent=0)
        :QWidget(parent){}

    ~MyClass() {}
public slots:
    void showModified(const QString& str)
    {
        Q_UNUSED(str)
        cout << "A message has been received!" << endl;
        //QMessageBox::information(this,"Directory Modified", "Your Directory is modified");
    }
};

#endif // FILESYSTEMRECEIVER_H

main.cpp

#include <iostream>

using namespace std;

#include <QtCore/QApplication>
#include <QtCore/QFileSystemWatcher>
#include <QtCore/QDebug>
#include <QtWidgets/QWidget>
#include <QtWidgets/QMessageBox>

#include "fileSystemReceiver.h"

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QFileSystemWatcher watcher;
    watcher.addPath("C:/QtTest");

    QStringList directoryList = watcher.directories();
    Q_FOREACH(QString directory, directoryList)
              qDebug() << "Directory name" << directory <<"\n";

    MyClass* mc = new MyClass;

    QObject::connect(&watcher, SIGNAL(directoryChanged(QString)), mc, SLOT(showModified(QString)));

    return app.exec();
}

Мой профессиональный файл выглядит так:

QT       += core
QT       += widgets

QT       -= gui

TARGET   =  fsw
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

HEADERS += fileSystemReceiver.h

SOURCES  += \
    main.cpp

Ответы на вопрос(1)

Ваш ответ на вопрос