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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: обработчик для QPushBotton  (Прочитано 3458 раз)
Taras.ua
Гость
« : Июль 08, 2009, 15:41 »

Как назначить собственную функцию обработки сигнала?

Код:
connect(button, SIGNAL(clicked()), qApp, SLOT(quit())); 
Тут используется функция класса приложения. Как туда прописать свою функцию?

Код:
 #include <qapplication.h>
 #include <qpushbutton.h>
#include <QDialog>


 int main(int argc, char *argv[])
 {
   QApplication app(argc, argv);
   QPushButton *button = new QPushButton("Quit", 0);
   QObject::connect(button, SIGNAL(clicked()), &app, SLOT(slotTest()));

   button->show();
   return app.exec();
}
void slotTest()
{
    QDialog *dialog = new QDialog();
    dialog->show();

}

так не работает. Что я делаю не правильно?
Записан
pashazz
Гость
« Ответ #1 : Июль 08, 2009, 15:47 »

   QObject::connect(button, SIGNAL(clicked()), &app, SLOT(slotTest()));
Бред! при чем тут &app? Ведь slotTest не является слотом и вообще членом app
Записан
spectre71
Гость
« Ответ #2 : Июль 08, 2009, 15:48 »

Код
C++ (Qt)
class MyPushButton : public QPushButton
{
Q_OBJECT
 
....
....
 
public slots:
 void slotTest(void);
 
};
 
void MyPushButton ::slotTest(void)
{
   QDialog *dialog = new QDialog();
   dialog->show();
 
}
Записан
f-r-o-s-t
Гость
« Ответ #3 : Июль 08, 2009, 15:49 »

http://doc.trolltech.com/4.5/signalsandslots.html
http://doc.crossplatform.ru/qt/4.3.5/signalsandslots.html ( на русском )
Записан
Taras.ua
Гость
« Ответ #4 : Июль 08, 2009, 16:06 »

Спасибо за ответ.
Меня интересовал вопрос обработки нажатия кнопки, как в студии. Но, как я понимаю, тут только нужно свой класс создавать и в нем создавать сигнал и слот...
Записан
spectre71
Гость
« Ответ #5 : Июль 08, 2009, 16:13 »

Спасибо за ответ.
Меня интересовал вопрос обработки нажатия кнопки, как в студии. Но, как я понимаю, тут только нужно свой класс создавать и в нем создавать сигнал и слот...
Да, но это не обязательно наследник QPushButton, и тем более не надо переоределять каждую кнопку итд.
У тебя , например, есть окно где лежат все контролы, вот у этого окна и сделаешь кучку слотов и зацепишь на них сигналы своих контролов Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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