J'utilise Qt 5.9 pour ouvrir une boîte de dialogue de fichier demandant à l'utilisateur de sélectionner un fichier image:QFileDialog combiner des filtres de type MIME à « Tous les formats »
QStringList mimeTypeFilters;
const QByteArrayList supportedMimeTypes = QImageReader::supportedMimeTypes();
foreach(const QByteArray& mimeTypeName, supportedMimeTypes) {
mimeTypeFilters.append(mimeTypeName);
}
mimeTypeFilters.sort();
QFileDialog* fileDialog = new QFileDialog(this, "Select image");
fileDialog->setMimeTypeFilters(mimeTypeFilters);
fileDialog->setFileMode(QFileDialog::ExistingFile);
fileDialog->exec();
Tous les formats d'image pris en charge sont ajoutés sous forme de filtres de type MIME à le dialogue, qui fonctionne très bien. Cependant, je veux ajouter un filtre supplémentaire (tel que "Tous les formats" ou "Tous supportés") qui permet à l'utilisateur de sélectionner une image de N'IMPORTE LEQUEL des formats supportés, car sélectionner le format correct avant de sélectionner l'image est assez fastidieux . Quelle est la solution la plus élégante pour y parvenir, sans sous-classer les classes Qt impliquées?
setMimeTypeFilters utilise simplement QMimeType :: filterString pour chaque type mime. Vous pouvez le faire vous-même, puis ajouter une autre chaîne que vous générez à partir de la concaténation des suffixes QMimeType :: pour tous les types MIME pris en charge. Pas une solution élégante cependant. Je ne sais pas non plus à quoi cela ressemblera dans la boîte de dialogue puisque le nombre d'extensions de fichiers sera assez important. – SteakOverflow