Qt. Ошибка функции QObject::connect

Здравствуйте.
В windows есть удобная программа под названием «Заметки»( как-то так, точно не помню ). Захотелось мне написать небольшой аналог этой программы для xubuntu на Qt. Вот код:

Файл main.cpp:


#include <QApplication>
#include <QMessageBox>
#include "note.hpp"

int main( int argc, char **argv )
{
    QApplication app( argc, argv );
    Note note;
    note.setWindowTitle( "Заметки" );

    if ( !note.read( "history.txt" ) )
        QMessageBox::warning( 0, static_cast<QString>("Ошибка"),
                              static_cast<QString>("Не удалось прочитать файл истории. Файл будет создан заново.") );

    note.show();
    return app.exec();
}


Файл note.hpp:

#ifndef Note_HPP
#define Note_HPP

#include <QDialog>

class QTextEdit;
class QPushButton;

class Note : public QDialog
{
public:
    Note( QWidget *parent = 0 );
    bool read( const QString &fileName );

private slots:
    void quitEvent();

private:
    QTextEdit *text;
    QPushButton *quitButton;
    QString historyFile;
    bool wasOpen;

    bool flushFile();
};

#endif // Note_HPP

Файл note.cpp

#include "note.hpp"

#include <QPushButton>
#include <QTextEdit>
#include <QVBoxLayout>
#include <QFile>
#include <QTextStream>

Note :: Note( QWidget *parent ):
    QDialog( parent ),
    wasOpen( false )
{
    quitButton = new QPushButton( "Выход" );
    text = new QTextEdit;

    connect( quitButton, SIGNAL(clicked()), this, SLOT(quitEvent()) );

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget( text );
    layout->addWidget( quitButton );

    setLayout( layout );

}

bool Note :: read( const QString &fileName )
{
    if ( wasOpen )
        if( !flushFile() )
            return false;

    wasOpen = true;

    historyFile = fileName;

    QFile file( historyFile );
    if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) )
        return false;

    QTextStream stream( &file );
    text->setText( stream.readAll() );

    file.close();
    return true;
}


bool Note :: flushFile()
{
    QFile flushFile( historyFile );
    if ( !flushFile.open( QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text )  )
        return false;

    QTextStream stream( &flushFile );
    stream << text->toPlainText();

    flushFile.close();
    return true;
}

void Note :: quitEvent()
{
    flushFile();
    close();
}

Компилируется нормально. Но при запуске вылетает сообщение:

QObject::connect: No such slot QDialog::quitEvent() in ../Заметки/note.cpp:16

Ну и как результат, кнопка quitButton( выход ) не работает. В чём дело?

UPD

То есть ругается на эту строчку:

connect( quitButton, SIGNAL(clicked()), this, SLOT(quitEvent()) );

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.