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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: проблема с обработкой сигнала  (Прочитано 2939 раз)
deM1d
Гость
« : Октябрь 27, 2010, 11:48 »

Привет. Вот только только, начал разбираться с qt, и по сути еще ничего не знаю... скачал книжку, и начал по пример набирать первые "хеллоу ворлды", и тут сразу же есть проблемы...

Код:
#include "qttest2.h"
#include <QtGui/QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button,SIGNAL(clicked),&a,SLOT(quit));
button->show();
return a.exec();
}
Проблема непосредственно в обработке сигнала, в строчке:

QObject::connect(button,SIGNAL(clicked),&a,SLOT(quit));
Я вроде понял, что моя кнопка, при клике генерирует сигнал, после чего основное окно должно закрыться, но на практике это не работает...
Дело то в том, что код с книги брал, по этому я и представить себе не могу, почему не работает... хотелось бы разобраться...

И если можно еще вопрос... когда создаю проект, он автоматически инклудит <QtGUI\QApplication> , а во всех источниках, где я читал, указывается, что подключать надо <qapplication.h> , причиной является разница версий библиотек? или что-то еще? всем спасибо за помощь...

upd... поправил название темы, и код привел почище, но он все равно не работает...
« Последнее редактирование: Октябрь 27, 2010, 12:34 от deM1d » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Октябрь 27, 2010, 12:16 »

Код
C++ (Qt)
#include <QtGui/QApplication>
#include <QtGui/QPushButton>
 
int main(int argc, char **argv)
{
QApplication app1(argc, argv);
QPushButton button1("Quit",0);
button1.resize(500,30);
QObject::connect(&button1,SIGNAL(clicked ()),&app1,SLOT(quit ()));
app1.setActiveWindow(&button1);
button1.show();
return app1.exec();
}

В следующий раз давай осмысленное название топика.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
deM1d
Гость
« Ответ #2 : Октябрь 27, 2010, 15:07 »

проблема решилась...
дело было в том после события clicked() скобки опускать нельзя, в слоте quit() тоже... по этому на событие и не реагировало...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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