Autore: Fabio Di Matteo
Ultima revisione: 08/05/2014
Di seguito alcuni esempi di messagebox nella modalita' informazione ed errore critico. Per usare le messagebox si deve sempre includere l'header:
#include <QMessageBox>
QMessageBox::critical(0, tr("Attenzione"), tr("It was not possible to turn off the computer.\n"), QMessageBox::Ok);
QMessageBox::information(0, tr("Titolo"), tr("Testo della messagebox"), QMessageBox::Ok);
E' possibile personalizzare maggiornamente le nostre messagebox utilizzando direttamente la classe QMessageBox . Ecco un esempio. Per ulteriori informazioni sull'utilizzo è meglio dare una sguardo alla classe 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);
#include <QMessageBox> ... //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" ; }
E' disponibile anche la forma contratta , a discapito di alcune opzioni:
#include <QMessageBox> ... 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" ; }
Utilizzeremo l'esempio precedente yes/no:
#include <QMessageBox> ... //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")); ...
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.