2009-10-22 17 views
22

Üç filtreli bir açık dosya iletişim kutusu var:QFileDialog'da seçili filtre nasıl ayarlanır?

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

Bu, varsayılan filtre olarak "JPEG" seçili bir iletişim kutusu görüntüler. Filtre listesini alfabetik sıraya koymak istedim, böylece listede "Tüm dosyalar" ilk sırada yer aldı. Ancak bunu yaparsam, "Tüm dosyalar" varsayılan filtre seçilidir - istemiyorum.

Bu iletişim kutusu için varsayılan seçili filtreyi ayarlayabilir miyim yoksa belirtilen ilk filtreyle mi gitmem gerekiyor?

Varsayılan seçili filtreyi ayarlamak için 5. bir argüman (QString) belirtmeyi denedim ama çalışmadı. Bunun sadece kullanıcı tarafından ayarlanmış olan filtreyi almak için kullanılabileceğini düşünüyorum.

cevap

36

:

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

dokümanlar bu (https://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileName) bu noktada hakkında biraz belirsiz olduğunu hemfikir ancak yalnızca biri bu hakkı nasıl yapılacağını tahmin etmeye çalışır götürdü.

Bu, yalnızca bir soru sormaktan daha hızlı deneyebileceğiniz bir durumdur.

+0

Saygılarımla, 5. argümanını inline etmeye çalıştım –

+4

Cidden, sert olmanıza gerek yok ... – DawidPi

İlgili konular