Aplikacja konsoli Qt „OSTRZEŻENIE: Aplikacja QApplication nie została utworzona w wątku main ()”

Tworzę bardzo prostą aplikację konsoli C ++ QT z podanego tutaj przykładu na przepełnienie stosu.

Jak używać QFileSystemWatcher do monitorowania zmian w folderze

Kod jest dokładnie taki sam jak kod w tej aplikacji i rozwijam się z interfejsem użytkownika Qt, Qt Creator z MinGW 32bit. Wybrałem aplikację konsoli z projektów, które mogłem wybrać, ponieważ nie potrzebuję graficznego interfejsu użytkownika. Po zakończeniu ładowania aplikacji aplikacja wyświetla komunikat o błędzie „OSTRZEŻENIE: Aplikacja QApplication nie została utworzona w wątku main ()”, a następnie nic nie robi.

Próbowałem debugować aplikację, ale nie trafiłem w żadne punkty przerwania, nie sądzę, aby debugowanie działało w edytorze.

Szybko się zmieniłam i zmieniłam aplikację QApplication na QCoreApplication widzianą, gdy tworzę aplikację konsoli, ale otrzymuję dokładnie ten sam komunikat o błędzie.

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();
}

Mój plik pro wygląda tak:

QT       += core
QT       += widgets

QT       -= gui

TARGET   =  fsw
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

HEADERS += fileSystemReceiver.h

SOURCES  += \
    main.cpp

questionAnswers(1)

yourAnswerToTheQuestion