Russian Qt Forum

Qt => Общие вопросы => Тема начата: yngwie от Июнь 18, 2009, 21:50



Название: Почему не вызывается слот
Отправлено: 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(). Однако черное окно пустое подскажите в чем дело?


Название: Re: Почему не вызывается слот
Отправлено: BRE от Июнь 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();
}
 


Название: Re: Почему не вызывается слот
Отправлено: yngwie от Июнь 18, 2009, 22:01
Спасибо. Странно в книге Шлее написано, что присоединение можно описывать в любой точке приложения.


Название: Re: Почему не вызывается слот
Отправлено: Авварон от Июнь 18, 2009, 22:04
место != время


Название: Re: Почему не вызывается слот
Отправлено: BRE от Июнь 18, 2009, 22:05
Спасибо. Странно в книге Шлее написано, что присоединение можно описывать в любой точке приложения.
Как только источник будет связан с приемником, только тогда заработает связь.


Название: Re: Почему не вызывается слот
Отправлено: yngwie от Июнь 18, 2009, 22:45
Всем большое спасибо.