¿Cómo muestro un cuadro de mensaje con botones Sí / No en Qt y cómo verifico cuál de ellos se presionó?
Es decir, un cuadro de mensaje que se ve así:

c++
qt
qmessagebox
sashoalm
fuente
fuente

Puede usar el objeto QMessage para crear un cuadro de mensaje y luego agregar botones:
fuente
setIconmétodo como parte delQMessageBoxobjeto. con uno si estas enumeraciones como parámetros:QMessageBox::NoIconQMessageBox::QuestionQMessageBox::Informationdoc.qt.io/qt-4.8/qmessagebox.html#icon-propQT puede ser tan simple como el de Windows. El código equivalente es
fuente
Me falta la llamada de traducción
tren las respuestas.Una de las soluciones más sencillas, que permite una posterior internacionalización:
En general, es un buen
Qthábito colocar cadenas a nivel de código dentro de unatr("Your String")llamada.(
QMessageboxcomo arriba funciona dentro de cualquierQWidgetmétodo)EDITAR:
puede usar
QMesssageBoxfuera de unQWidgetcontexto, consulte la respuesta de @ TobySpeight.Incluso si está fuera de un
QObjectcontexto, reemplacetrconqApp->translate("context", "String")- necesitará#include <QApplication>fuente
QMessageBoxincluye métodos estáticos para hacer rápidamente tales preguntas:Si sus necesidades son más complejas que las previstas por los métodos estáticos, debe construir un nuevo
QMessageBoxobjeto y llamar a suexec()método para mostrarlo en su propio bucle de eventos y obtener el identificador del botón presionado. Por ejemplo, podríamos querer que "No" sea la respuesta predeterminada:fuente
QApplication, sugiero usarqApp->translate("context", "String"), que reemplazatrpara el uso fuera de unaQObjectclaseSi desea hacerlo en Python, debe verificar este código en su banco de trabajo. también escribe así. Creamos un cuadro emergente con Python.
fuente