2013-04-24 11 views
9

Qt 4.8を使用してQFileDialogで現在のディレクトリを変更することはできません。 WindowsとMac OS 10.6 Snow Leopardでは、同じコードが正常に動作します。また、ネイティブのMac OS Xダイアログを使用しないと正常に動作します。QFileDialog :: getOpenFileNameがMac OS 10.8 Mountain Lionの初期ディレクトリを設定していません

これは動作します:

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

これは動作しません:

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

それはほとんどの時間、それはGetOpenFileName関数の最後の呼び出しの最後のパスを開いた場合のように見えます。

答えて

5

これは、Qt 5.0.1とQt 4.8.4で修正されていると伝えられているQtのバグです(ただし、4.8.4の人(自分自身が含む)によって再現可能です)。

このバグは、QTBUG-20771,QTBUG-28161、最後にQTBUG-35779と報告されています(Qt 5.2.1の問題を最終的に完全に解決したようです)。ここに、Gerritのパッチへのリンクがあります。

+0

ありがとうございました:彼らはあなたも行うことができ、より多くのオプションを必要とするので、ファイルダイアログをインスタンス化すること私のような人のためまた

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

、!私はQtバグトラッカーを検索しましたが、それらを見つけませんでした。 –

+0

まだ同じバグがあります。QT 5.8 – vivi

7

マーベリックスでQt5.2.0と同じ問題が発生しました... 私は回避策を見つけました:選択したいディレクトリにダミーのファイル名を追加してください。 ただし、Windowsでこの操作を行わないように注意してください。

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

QT 5.8で同じバグがあります。 – vivi

関連する問題