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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему не вызывается слот  (Прочитано 3544 раз)
yngwie
Гость
« : Июнь 18, 2009, 21:50 »

Здравствуйте. Вот код:
Код:
#include <QtGui>
#include <QtCore>
class MySignal : public QObject
{
    Q_OBJECT
    public:
        void sendSignal();
    signals:
        void mySignal();
};
class MySlot : public QObject
{
    Q_OBJECT
    public slots:
        void mySlot();
};
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    MySignal mySig;
    MySlot mySl;
    mySig.sendSignal();
    QObject::connect(&mySig,SIGNAL(mySignal()),&mySl,SLOT(mySlot()));
   
    return a.exec();
}
void MySignal::sendSignal()
{
    emit mySignal();
}
void MySlot::mySlot()
{
    qDebug() << "The message was send from ";
}
#include "main.moc"

В консоли должна появится надпись The message was send from, т.к посылается сигнал emit mySignal(), и он присоединен к слоту mySlot(). Однако черное окно пустое подскажите в чем дело?
Записан
BRE
Гость
« Ответ #1 : Июнь 18, 2009, 21:55 »

В консоли должна появится надпись The message was send from, т.к посылается сигнал emit mySignal(), и он присоединен к слоту mySlot(). Однако черное окно пустое подскажите в чем дело?
Сначала коннект, потом испускание сигнала.
Код
C++ (Qt)
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   MySignal mySig;
   MySlot mySl;
 
   QObject::connect(&mySig,SIGNAL(mySignal()),&mySl,SLOT(mySlot()));
   mySig.sendSignal();
 
   return a.exec();
}
 
Записан
yngwie
Гость
« Ответ #2 : Июнь 18, 2009, 22:01 »

Спасибо. Странно в книге Шлее написано, что присоединение можно описывать в любой точке приложения.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июнь 18, 2009, 22:04 »

место != время
Записан
BRE
Гость
« Ответ #4 : Июнь 18, 2009, 22:05 »

Спасибо. Странно в книге Шлее написано, что присоединение можно описывать в любой точке приложения.
Как только источник будет связан с приемником, только тогда заработает связь.
Записан
yngwie
Гость
« Ответ #5 : Июнь 18, 2009, 22:45 »

Всем большое спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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