Como faço para mostrar uma caixa de mensagem com botões Sim / Não no Qt, e como eu verifico qual deles foi pressionado?
Ou seja, uma caixa de mensagem semelhante a esta:
c++
qt
qmessagebox
sashoalm
fonte
fonte
Você pode usar o objeto QMessage para criar uma caixa de mensagem e adicionar botões:
fonte
setIcon
parte do método doQMessageBox
objeto. com um destes enums como parâmetros:QMessageBox::NoIcon
QMessageBox::Question
QMessageBox::Information
doc.qt.io/qt-4.8/qmessagebox.html#icon-propO QT pode ser tão simples quanto o do Windows. O código equivalente é
fonte
Estou perdendo a chamada de tradução
tr
nas respostas.Uma das soluções mais simples, que permite uma posterior internacionalização:
Geralmente, é um bom
Qt
hábito colocar Strings de nível de código em umatr("Your String")
chamada.(
QMessagebox
como acima funciona em qualquerQWidget
método)EDITAR:
você pode usar
QMesssageBox
fora de umQWidget
contexto, consulte a resposta de @TobySpeight.Se você estiver fora de um
QObject
contexto, substituatr
porqApp->translate("context", "String")
- você precisará#include <QApplication>
fonte
QMessageBox
inclui métodos estáticos para fazer rapidamente essas perguntas:Se suas necessidades são mais complexas do que as fornecidas pelos métodos estáticos, você deve construir um novo
QMessageBox
objeto e chamar seuexec()
método para mostrá-lo em seu próprio loop de eventos e obter o identificador do botão pressionado. Por exemplo, podemos querer que "Não" seja a resposta padrão:fonte
QApplication
, sugiro usarqApp->translate("context", "String")
, que substituitr
o uso fora de umaQObject
classeSe você quiser fazer em python, você precisa verificar este código em seu ambiente de trabalho. também escreva assim. criamos uma caixa pop-up com python.
fonte