Les utilisateurs ouvrent des fichiers dans notre application via un QFileDialog. L'ordre des noms de fichiers est bizarre. Qu'est-ce qui détermine l'ordre de tri, et comment pouvons-nous le trier par noms de fichiers, ou sinon imposer notre propre tri, en lui donnant peut-être un pointeur vers notre propre fonction de comparaison?Qu'est ce qui détermine le tri des fichiers dans un QFileDialog?
La documentation et les forums en ligne n'ont pas été utiles. À moins qu'il ne soit bien caché, il ne semble pas y avoir de méthode de tri, de propriété, etc.
Il s'agit d'une application principalement Linux, mais fonctionne également sur Mac. (Je ne sais rien à propos de Mac.)
Voici la partie juteuse du code source:
QtFileDialog chooser(parent, caption, directory, filter);
/// QtFileDialog is our class derived from QFileDialog
chooser.setModal(true);
chooser.setAcceptMode(acceptMode);
chooser.setFileMode(fileMode);
QStringList hist = chooser.history();
chooser.setHistory(hist);
/* point "x" */
if(chooser.exec()) {
QStringList files = chooser.selectedFiles();
...blah blah blah...
A partir de l'une des réponses, j'ai essayé une expérience mal, en ajoutant ce code devinettes mal informé au " point x ":
QSortFilterProxyModel *sorter = new QSortFilterProxyModel();
sorter->sort(1); // ???
chooser.setProxyModel(sorter);
Mais spectaculairement chuté à un point environ 33 sous-programme appelle en profondeur de ce niveau de code. J'avoue, même après avoir lu la documentation Qt4 et l'exemple de code, je n'ai aucune idée de l'utilisation correcte de QSortFilterProxyModel.
Peut-être, c'est la chose à faire. Nous en discuterons. Idéalement, nous aimerions que la boîte de dialogue apparaisse comme vous le souhaitez sans avoir à cliquer sur quoi que ce soit. – DarenW
Quelle version de Qt 4 utilisez-vous? J'ai vu un bogue mentionné pour QFileDialog sous Linux qui conduisait au tri des fichiers basé sur le nom et l'extension. Pouvez-vous montrer un exemple du comportement de tri que vous voyez? –
Qt4.3, je pense. Plusieurs versions sont installées pour prendre en charge une grande variété de logiciels ici. Un exemple de capture d'écran: http://www.aoc.nrao.edu/~dwilson/temp/goofysort3.png – DarenW