Russian Qt Forum

Qt => Общие вопросы => Тема начата: Flake от Сентябрь 14, 2007, 10:14



Название: Перехват сигнала нажатия кнопки Cancel в QWizard.
Отправлено: Flake от Сентябрь 14, 2007, 10:14
В общем при нажатии на кнопку Cancel должно выскакивать сообщение: "Вы действительно хотите прервать процесс установки?". Как можно перехватить этот сигнал.


Название: Re: Перехват сигнала нажатия кнопки Cancel в QWizard.
Отправлено: Пантер от Сентябрь 14, 2007, 11:16
Законнектить. Должен быть доступ в классе к кнопке - пошушри в ассистенте.


Название: Re: Перехват сигнала нажатия кнопки Cancel в QWizard.
Отправлено: Mike от Сентябрь 14, 2007, 11:58
Переопредели в своем классе визарда (допустим MyWizard), виртуальный слот reject(). Примерно так:
Код:
// MyWizard.h

class MyWizard : public QWizard
{
Q_OBJECT
public:
// Твои определения
public slots:
virtual void reject();
}

// MyWizard.cpp

void MyWizard::reject()
{
if (QMessageBox(this, tr("Прервать установку?"), tr("Вы действительно хотите прервать процесс установки?"),
QMessageBox::Yes | QMessageBox::Yes) == QMessageBox::Yes)
{
QWizard::reject();
}
}


Название: Re: Перехват сигнала нажатия кнопки Cancel в QWizard.
Отправлено: Sergey B. от Сентябрь 15, 2007, 13:56
В конструкторе класса:
Код:
connect(cancelButton, SIGNAL(clicked()), this, MySLot());


Класс::MySlot(){
// а вот тут спрашивай что хочешь...
}