crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Свой слот
wf778899
  опции профиля:
сообщение 20.7.2014, 12:19
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 20.7.2014
Пользователь №: 4191

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет всем. Решил поиграть с сигналами и слотами, написал что-то совсем примитивное: создал свой класс, в нём определил слот, который просто должен выводить 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
  опции профиля:
сообщение 20.7.2014, 21:04
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 92
Регистрация: 5.1.2011
Пользователь №: 2325

Спасибо сказали: 3 раз(а)




Репутация:   0  


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

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.7.2014, 23:02
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Dovgon @ 21.7.2014, 0:04) *
нужно добавить Q_OBJECT
и полностью пересобрать проект, т.к. в makefile нет записи о необходимости запускать MOC
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.4.2024, 10:14