пожалуйста, обратите внимание: новичок qt / c ++ здесь
Цель:
У меня есть QDialog, из которого я хочу вернуть результат. Я знаю о QDialog::exec()
в сочетании с setResult, приводит к использованию Accept()
или же Reject()
,
но как страница документации читает, разработчики предложить подавать в суд на коды возврата QDialog, подразумевая, что разные значения Можно использовать, хотя мне не повезло с этим.
enum ReturnResult{
success=0,
fail=1
error=2
warning=3
}
Как я могу использовать QDialog::setResult()
функция для отправки пользовательских enum
значения до (как видно выше),
в результате, возвращаясь к родительскому классу, если это невозможно, есть какие-либо предложения относительно того, как я могу решить эту проблему?
Ты можешь позвонить QDialog::done(int res)
закрыть диалог с желаемым кодом результата, который затем будет возвращаемым значением QDialog::exec()
,
Документация для result()
говорится, что
Обычно возвращает код результата модального диалога,
Accepted
или жеRejected
,
Если я правильно понимаю, это означает, что даже если текущая реализация позволяет передавать пользовательские значения, вы не можете быть уверены, что это не изменит и не нарушит ваш код в будущем.
В вашем случае просто добавьте к нему другой сигнал и подключитесь к нему, или добавьте свое собственное поле в диалог и используйте его для передачи данных.