Gli utenti aprono i file nella nostra app tramite un QFileDialog. L'ordine dei nomi dei file è bizzarro. Che cosa determina l'ordinamento e come possiamo ordinarlo per nome di file, o altrimenti imporre il nostro ordinamento, magari dandogli un puntatore alla nostra funzione di confronto?Che cosa determina l'ordinamento dei file in un QFileDialog?
La documentazione e i forum online non sono stati utili. A meno che non sia ben nascosto, non sembra esserci alcun metodo di ordinamento, proprietà, ecc.
Questa è principalmente un'app per Linux, ma funziona anche su Mac. (Non so niente di Mac.)
Qui è la parte succosa del codice sorgente:
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...
Da una delle risposte, ho provato un esperimento male, aggiungendo questo codice congetture male informati al " punto x ":
QSortFilterProxyModel *sorter = new QSortFilterProxyModel();
sorter->sort(1); // ???
chooser.setProxyModel(sorter);
Ma questo è schiantato spettacolare in un punto circa 33 subroutine chiama profondo da questo livello di codice. Ammetto che, anche dopo aver letto la documentazione Qt4 e il codice di esempio, non ho idea del corretto utilizzo di QSortFilterProxyModel.
Forse, questa è la cosa da fare. Ne discuteremo. Idealmente, vorremmo che la finestra di dialogo mostrasse il modo in cui gli utenti vogliono senza dover fare clic su nulla. – DarenW
Quale versione di Qt 4 stai usando? Ho visto un bug menzionato per QFileDialog sotto Linux che porta all'ordinamento dei file in base al nome e all'estensione. Puoi mostrare un esempio del comportamento di ordinamento che stai vedendo? –
Qt4.3, penso. Più versioni sono installate per supportare un'ampia varietà di software qui. Un esempio di schermata di esempio: http://www.aoc.nrao.edu/~dwilson/temp/goofysort3.png – DarenW