@Quarintium

Как из дочернего окна передать значение в родительское окно?

Идея:
Имеется форма с кнопкой. При нажатии кнопки открывается ещё одна форма, с радиобутонами и кнопкой.
При нажатии на кнопку окно закрывается и отправляет значение в зависимости от выбранного. В главной форме "ловится" это значение.

В C# это делалось как-то так:

//Нажатие на кнопку
void ButClic()
{
    f1 = new CrPass();
    // подписка на событие закрытия формы
    f1.FormClosing += new FormClosingEventHandler(F1_FormClosing);
    f1.ShowDialog();
}

void F1_FormClosing(object sender, FormClosingEventArgs e)
{
    string str = (sender as Form2).ReturnZn();
    if (str != "NONE")
    {
         // некий код
    }
}


Как это сделать
  • Вопрос задан
  • 351 просмотр
Пригласить эксперта
Ответы на вопрос 2
PavelK
@PavelK
Самое простое, это через сигналы-слоты.
Ответ написан
@drizt
Значение QRadioButton можно вернуть с помощью QDialog::done(int). В главной форме его можно получить с помощью QDialog::exec(int). Код будет такой:

void ChildDialog::onOkButton()
{
    int result;
    // считываем значение QRadioButton
    done(result);
}

void MainDialog::showChild()
{
    ChildDialog dlg(this);
    int radioBtn = dlg.exec();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы