Russian Qt Forum
Ноябрь 24, 2024, 01:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не получается соединить сигнал и слот  (Прочитано 2613 раз)
hank
Гость
« : Декабрь 12, 2011, 11:24 »

Хочу соединить сигнал со слотом, но ничего не выходит.

Имею следующий класс:
Код
C++ (Qt)
#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include <QPushButton>
 
class Widget : public QWidget
{
 
public:
   explicit Widget(QWidget *parent=0);
 
   QPushButton *myButton1;
 
public slots:
   void mySlot();
 
};
 
#endif // WIDGET_H
 

Реализация:
Код
C++ (Qt)
#include "widget.h"
 
#include <QHBoxLayout>
 
 
Widget::Widget(QWidget *parent) : QWidget(parent)
{    
   myButton1 = new QPushButton("Press me",this);
 
   QHBoxLayout *m = new QHBoxLayout(this);
 
   m->addWidget(myButton1);
 
   this->setLayout(m);
 
   connect(this->myButton1,SIGNAL(clicked()),this,SLOT(mySlot()));
}
 
void Widget::mySlot()
{
   myButton1->setText("ololo");
}
 

При сборке получаю уведомление: Object::connect: No such slot QWidget::mySlot() in widget.cpp:21
Соответственно ничего не работает.

Пробовал в описание класса добавлять макрос Q_OBJECT - программа вообще не компилируется.

Как быть?
Записан
black_engel
Гость
« Ответ #1 : Декабрь 12, 2011, 11:31 »

Цитировать
Пробовал в описание класса добавлять макрос Q_OBJECT - программа вообще не компилируется.

Напиши какие ошибки выдает компилятор
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #2 : Декабрь 12, 2011, 11:32 »

Q_OBJECT использовать обязательно. После вставки заново запустить qmake.
Записан
hank
Гость
« Ответ #3 : Декабрь 12, 2011, 11:36 »

Тэкс.
Вроде заработало.

При добавлении Q_OBJECT были ошибки, которые я вот сейчас нашел в статье.
Вылечилось очисткой и пересборкой проекта.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.106 секунд. Запросов: 22.