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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qdialog, result code  (Прочитано 3201 раз)
Gate007
Гость
« : Август 08, 2011, 11:06 »

Есть вопрос, связанный с result code.
Имеется проект, в нем главная форма (mainform) и форма диалога (AddDialog).
В AddDialog 2 кнопки:
Код:
void AddDialog::on_pushButton_2_clicked() // Обработчик отмены, возвращает код 0
{
    QDialog::reject();
}

void AddDialog::on_pushButton_clicked() // Обработчик ОК, возвращает код 1
{
                QDialog::accept();
}
В mainform:
Код:
void MainWindow::on_pushButton_clicked() // Обработчик кнопки добавить
{
AddDialog e; // Создает объект е класса AddDialog
e.exec(); // Выполняет его, т.е по сути показывает окошко

if (e.Accepted) // Если диалог был завершен с кодом 1, т.е по нажатию на ок
    {
    тело
    }
Проблема в том, что тело выполняется всегда, т.е я так понимаю диалог всегда завершается с кодом 1.
В чем может быть причина?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Август 08, 2011, 11:09 »

Код
C++ (Qt)
AddDialog e;
const int result = e.exec();
if (result) //Accepted
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Август 08, 2011, 11:30 »

Поясню, что QDialog::Accepted - это константа, равная 1, а вовсе не функция, как вы видимо считаете.
Записан
Gate007
Гость
« Ответ #3 : Август 08, 2011, 11:37 »

Спасибо, все понятно Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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