Russian Qt Forum

Qt => Общие вопросы => Тема начата: qter от Январь 01, 2011, 20:15



Название: Область видимости объекта
Отправлено: qter от Январь 01, 2011, 20:15
Есть слоты, в которых создаются объекты:

Код:
//файл main.cpp
void Main::Start(){
    start = new Start(this);
    start->show();
}

void Main::Process1(){
    process = new Process(this);
    process->show();
}
Далее я вызываю слот Start() и, когда объект start рушится, вызываю Process1(), когда process рушится - вызываю Process2():
Код:
//файл main.cpp
Start();
connect(start, SIGNAL(destroyed()), this, SLOT(Process1()));
connect(process, SIGNAL(destroyed()), this, SLOT(Process2()));
Проблема в том, что Process2() не вызывается. Вероятно из-за того, что объект process неправильно создается что ли, и его не видно.
Помогите с решением проблемы, пожалуйста.


Название: Re: Область видимости объекта
Отправлено: kalif от Январь 01, 2011, 20:37
Скорее всего связь сигнал-слот не создается так так объект Process еще не создан.
Попробуй так:
Код:
void Main::Process1(){
    process = new Process(this);
    process->show();
    connect(process, SIGNAL(destroyed()), this, SLOT(Process2()));
}



Название: Re: Область видимости объекта
Отправлено: qter от Январь 01, 2011, 20:47
Именно то, что нужно! Спасибо. С Новым годом! :)