2009-10-22 61 views
22

我有三個過濾器打開文件對話框:如何在QFileDialog上設置選定的過濾器?

QString fileName = QFileDialog::getOpenFileName(
     this, 
     title, 
     directory, 
     tr("JPEG (*.jpg *.jpeg);; TIFF (*.tif);; All files (*.*)") 
); 

這將顯示一個對話框,選擇作爲默認過濾器「JPEG」。我想按字母順序放置過濾器列表,以便「列出所有文件」。但是,如果我這樣做,「所有文件」是默認選擇的過濾器 - 我不想要。

我可以設置此對話框的默認選定過濾器,還是必須使用第一個指定的過濾器?

我試着指定第五個參數(QString)來設置默認的選定過濾器,但這不起作用。我認爲這可能只用於檢索用戶設置的過濾器。

回答

36

像這樣:

QString selfilter = tr("JPEG (*.jpg *.jpeg)"); 
QString fileName = QFileDialog::getOpenFileName(
     this, 
     title, 
     directory, 
     tr("All files (*.*);;JPEG (*.jpg *.jpeg);;TIFF (*.tif)"), 
     &selfilter 
); 

我同意的文檔(https://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileName)是有點模糊有關這一點,但我只用了一個嘗試猜測如何做到這一點的權利。

這是一種情況,只是嘗試它比提問更快。

+0

謝謝,我試圖內聯第五個參數 – 2009-10-22 22:47:47

+4

嚴肅地說,不需要苛刻... – DawidPi 2016-10-16 09:48:58

相關問題