2013-04-24 12 views
9

Nie mogę zmienić bieżącego katalogu przy pomocy QFileDialog z Qt 4.8. Ten sam kod działa poprawnie w systemie Windows i Mac OS 10.6 Snow Leopard. Działa również dobrze, jeśli nie używam natywnego okna Mac OS X.QFileDialog :: getOpenFileName nie ustawia początkowego katalogu na Mac OS 10.8 Mountain Lion

to działa:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop",QString(),0,QFileDialog::DontUseNativeDialog); 

To nie działa:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop"); 

Wygląda na to, jeśli przez większość czasu otwiera ostatnią ścieżkę ostatniego wywołania GetOpenFileName.

Odpowiedz

5

To jest błąd w Qt, który jest podobno naprawiony w Qt 5.0.1 i Qt 4.8.4 (choć wydaje się, że jest on wciąż powtarzalny w 4.8.4 przez ludzi (włącznie ze mną)).

Ten błąd został zgłoszony w JIRA jako QTBUG-20771, QTBUG-28161 i ostatecznie QTBUG-35779 (który prawdopodobnie ostatecznie rozwiązał problem w Qt 5.2.1). Oto link do łaty w Gerrit.

+0

dziękuję! Przeszukałem tracker błędów Qt, ale nie znalazłem tych 2. –

+0

NALEŻY mieć ten sam buggy tutaj .. na QT 5.8 – vivi

7

Mam ten sam problem z Qt5.2.0 na Mavericks ... Znalazłem pracę: dołącz fałszywą nazwę pliku do katalogu, który chcesz wybrać. Należy jednak pamiętać, aby tego nie robić w systemie Windows, ponieważ użytkownik je zobaczy.

QString dir = "/Users/myuser/Desktop"; 
#if defined(__APPLE__) 
dir += "/MyFile.txt"; 
#endif 
fn = QFileDialog::getOpenFileName(this, "Select File", dir); 

Ponadto, dla takich jak ja, które instancji okna wyboru pliku, ponieważ potrzebują więcej opcji można również zrobić:

QFileDialog fileDialog(this, "Select File"); 
#if defined(__APPLE__) 
fileDialog.selectFile(dir + "/MyFile.txt"); 
#else 
fileDialog.setDirectory(dir); 
#endif 
... 
+0

ten sam nadal buggy tutaj .. na QT 5.8 – vivi

Powiązane problemy