Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Gate007 от Август 08, 2011, 11:06



Название: Qdialog, result code
Отправлено: 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.
В чем может быть причина?


Название: Re: Qdialog, result code
Отправлено: Пантер от Август 08, 2011, 11:09
Код
C++ (Qt)
AddDialog e;
const int result = e.exec();
if (result) //Accepted
 


Название: Re: Qdialog, result code
Отправлено: LisandreL от Август 08, 2011, 11:30
Поясню, что QDialog::Accepted - это константа, равная 1, а вовсе не функция, как вы видимо считаете.


Название: Re: Qdialog, result code
Отправлено: Gate007 от Август 08, 2011, 11:37
Спасибо, все понятно :)