====== Le messagebox in Qt ======
Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//08/05/2014//** \\ \\
===== Info, critical =====
Di seguito alcuni esempi di messagebox nella modalita' informazione ed errore critico. Per usare le messagebox si deve sempre includere l'header:
#include
==== Critical ====
QMessageBox::critical(0, tr("Attenzione"), tr("It was not possible to turn off the computer.\n"), QMessageBox::Ok);
==== Info ====
QMessageBox::information(0, tr("Titolo"), tr("Testo della messagebox"), QMessageBox::Ok);
==== Piu' pametri per la nostra messagebox ====
E' possibile personalizzare maggiornamente le nostre messagebox utilizzando direttamente la classe [[http://qt-project.org/doc/qt-4.8/qmessagebox.html|QMessageBox]] . Ecco un esempio. Per ulteriori informazioni sull'utilizzo è meglio dare una sguardo alla classe [[http://qt-project.org/doc/qt-4.8/qmessagebox.html|QMessageBox]]
QMessageBox msgBox;
msgBox.setWindowTitle("title");
//si puo' cambiare l'icona standard sostituendo QMessageBox::Information con
//oppure: QMessageBox::NoIcon, QMessageBox::Question, QMessageBox::Information, QMessageBox::Warning, QMessageBox::Critical
msgBox.setIcon ( QMessageBox::Information );
msgBox.setText("Testo della messagebox");
msgBox.setStandardButtons(QMessageBox::Ok);
===== Yes, no =====
#include
...
//Test msgbox
QMessageBox msgBox;
msgBox.setWindowTitle("title");
msgBox.setText("Ti piace questa bella messagebox");
msgBox.setStandardButtons(QMessageBox::Yes| QMessageBox::No);
if(msgBox.exec() == QMessageBox::Yes){
qDebug()<< "Hai risposto Si" ;
}else {
qDebug()<< "Hai risposto No" ;
}
==== Forma contratta ====
E' disponibile anche la forma contratta , a discapito di alcune opzioni:
#include
...
int myRes=QMessageBox::question(0, "Titolo", "Che risponderai?", QMessageBox::Yes|QMessageBox::No);
if(myRes == QMessageBox::Yes){
qDebug()<< "Hai risposto Si" ;
}else {
qDebug()<< "Hai risposto No" ;
}
===== Personalizzare il testo dei bottoni =====
Utilizzeremo l'esempio precedente yes/no:
#include
...
//Test msgbox
QMessageBox msgBox;
msgBox.setIcon ( QMessageBox::Information );
msgBox.setWindowTitle("title");
msgBox.setText("Ti piace questa bella messagebox");
//Specifico che tipo di bottoni standard voglio visualizzare
msgBox.setStandardButtons(QMessageBox::Yes| QMessageBox::No);
//Assegno del testo personalizzato per i bottoni, in questo caso si e no
msgBox.setButtonText(QMessageBox::Yes, "Si");
msgBox.setButtonText(QMessageBox::No, "No");
if(msgBox.exec() == QMessageBox::Yes){
qDebug()<< "Hai risposto Si" ;
}else {
qDebug()<< "Hai risposto No" ;
}
Ovviamente è possibile internazionalizzare il nostro testo personalizzato con la funzione **tr()** di Qt. Ecco come:
...
msgBox.setButtonText(QMessageBox::Yes, tr("Si"));
...