====== 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")); ...