Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Свой слот
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
wf778899
Привет всем. Решил поиграть с сигналами и слотами, написал что-то совсем примитивное: создал свой класс, в нём определил слот, который просто должен выводить Hello. Слот подключил к дочерней кнопке. По идее по каждому нажатию на кнопку, в выводе приложения должно выскакивать "Hello!", но ничего подобного. Возможно, я что-то не так понял. Подскажите, пожалуйста, где косяк? Работаю в пакете Qt 5.3.1, код ниже...

#include <QApplication>
#include <QTextStream>
#include <QPushButton>
#include <QObject>

class myClass : public QWidget {
public:
    myClass(QWidget *parent=0);
private slots:
    void slot1();
};

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

void myClass::slot1() {
    QTextStream cout(stdout);
    cout << "Hello!!!" << endl;
}



int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    myClass q1;
    QPushButton b1("Hello!", &q1);
    QObject::connect(&b1, SIGNAL(clicked()), &q1, SLOT(slot1()));
    q1.show();

    return a.exec();
}
Dovgon
класс обычный, нужно добавить Q_OBJECT
class myClass : public QWidget {
Q_OBJECT
public:
myClass(QWidget *parent=0);
private slots:
void slot1();
};

Litkevich Yuriy
Цитата(Dovgon @ 21.7.2014, 0:04) *
нужно добавить Q_OBJECT
и полностью пересобрать проект, т.к. в makefile нет записи о необходимости запускать MOC
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.