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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перехват сигнала нажатия кнопки Cancel в QWizard.  (Прочитано 4833 раз)
Flake
Гость
« : Сентябрь 14, 2007, 10:14 »

В общем при нажатии на кнопку Cancel должно выскакивать сообщение: "Вы действительно хотите прервать процесс установки?". Как можно перехватить этот сигнал.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Сентябрь 14, 2007, 11:16 »

Законнектить. Должен быть доступ в классе к кнопке - пошушри в ассистенте.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Mike
Гость
« Ответ #2 : Сентябрь 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();
}
}
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #3 : Сентябрь 15, 2007, 13:56 »

В конструкторе класса:
Код:
connect(cancelButton, SIGNAL(clicked()), this, MySLot());


Класс::MySlot(){
// а вот тут спрашивай что хочешь...
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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