2009-10-22 11 views
22

मेरे पास तीन फ़िल्टर के साथ एक खुली फ़ाइल संवाद है:QFileDialog पर चयनित फ़िल्टर कैसे सेट करें?

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

यह डिफ़ॉल्ट फ़िल्टर के रूप में चुने गए "जेपीईजी" के साथ एक संवाद प्रदर्शित करता है। मैं फिल्टर सूची को वर्णानुक्रम में रखना चाहता था ताकि "सभी फाइलें" सूची में सबसे पहले थीं। अगर मैं ऐसा करता हूं, तो "सभी फाइलें" डिफ़ॉल्ट चयनित फ़िल्टर है - जो मैं नहीं चाहता हूं।

क्या मैं इस संवाद के लिए डिफ़ॉल्ट चयनित फ़िल्टर सेट कर सकता हूं या क्या मुझे पहले निर्दिष्ट फ़िल्टर के साथ जाना है?

मैंने डिफ़ॉल्ट चयनित फ़िल्टर सेट करने के लिए 5 वां तर्क (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

धन्यवाद, मैंने 5 वें तर्क –

+4

को रेखांकित करने की कोशिश की, गंभीरता से, कठोर होने की आवश्यकता नहीं है ... – DawidPi

संबंधित मुद्दे