Les fenêtres standards
Elles proviennent de la classe QMessageBox.
Dans le header :
#include <QtWidgets/QMessageBox>
MessageBox
Petites fenêtres bien utiles et rapides à mettre en place.
Information :
QMessageBox::information(this,"Information","texte de la fenêtre");
Question :
QMessageBox::question(this,"Question","texte de la fenêtre");
Remarque : La réponse pouvant être de type Vrai ou faux, on peut récupérer cette information de la manière suivante :
int reponse = QMessageBox::question(this,"Question","texte de la fenêtre");
if (reponse==QMessageBox::Yes)
{
// instructions pour Yes
}
else
{
//instructions pour No
}
Mise en garde :
QMessageBox::warning(this,"Attention","texte de la fenêtre");
Alerte critique :
QMessageBox::critical(this,"Erreur critique","texte de la fenêtre");
Sans icone :
QMessageBox::about(this,"Sans icone","texte de la fenêtre");
Remarque : Les commandes ci-dessus fonctionnent si un conteneur a été défini (une fenêtre MainWindow par exemple). On peut aussi utiliser :
QMessageBox msgbox(QMessageBox::NoIcon, "Sans icone", "texte de la fenêtre");
msgbox.exec();
Fenêtre d'ouverture de fichier
La fenêtre d'ouverture de fichier provient de QFileDialog
Dans le .h
#include <QtWidgets/QFileDialog>
....
QString *nomfichier ; //nom du fichier sélectionné
Dans le .cpp
QString nomfichier = QFileDialog::getOpenFileName(this, "Ouvrir une image", QString(), "Images (*.bmp)");
QMessageBox::information(this, "Fichier", "Vous avez sélectionné :\n" + nomfichier);
Fenêtre de saisie de texte
Cette fenêtre permet de saisir un texte et de le restituer. La classe est QInputDialog
Dans le .h
#include <QtWidgets/QInputDialog>
Dans le .cpp
bool ok;
QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
tr("User name:"), QLineEdit::Normal,
QDir::home().dirName(), &ok);
if (ok && !text.isEmpty())
textLabel->setText(text);
text restitue le text saisi dans la fenêtre. La methode getText permet de spécifier l'entête de la fenêtre, le texte de consigne et le type de bouton.
Extraits partiels de qt.developpez.com