目前,我可以使用QFileDialog
的getExistingDirectory
函數選擇文件夾。即使我想我也設法讓對話框顯示這些文件,但我想過濾它們,即只顯示文件夾和*.mp3
文件。顯示mp3文件,但用QFileDialog選擇文件夾
QString folder = QFileDialog::getExistingDirectory(this, "test", "", QFileDialog::ReadOnly);
這可能沒有創建自定義對話框?
目前,我可以使用QFileDialog
的getExistingDirectory
函數選擇文件夾。即使我想我也設法讓對話框顯示這些文件,但我想過濾它們,即只顯示文件夾和*.mp3
文件。顯示mp3文件,但用QFileDialog選擇文件夾
QString folder = QFileDialog::getExistingDirectory(this, "test", "", QFileDialog::ReadOnly);
這可能沒有創建自定義對話框?
QFileDialog d(this);
d.setFileMode(QFileDialog::Directory);
d.setNameFilter("*.mp3");
if (d.exec())
qDebug() << d.selectedFiles();
我現在在移動rt。僅提供一種提示......
在Windows和macOS上,此靜態函數將使用本機文件對話框而不是QFileDialog。但是,本機Windows文件對話框不支持在目錄選擇器中顯示文件。你需要通過DontUseNativeDialog來顯示使用QFileDialog的文件。 (從qfiledialog文檔)
因此,使用設定的 'QFileDialog :: DontUseNativeDialog' 選項 'setflags'
然後使用文件對話框的 '使用setfilter' 爲您的MP3文件過濾器..
我的主窗口是全屏。使用'getExistingDirectory'使對話框顯示出來,但是這樣焦點仍然在'MainWindow'上。 – NaCl
如果你將'this'添加到'QFileDialog'的構造函數中? (見編輯後) – m7913d
多麼愚蠢的錯誤!謝謝! – NaCl