से QFileDialog फ़िल्टर मैं चाहता हूं कि फ़ॉफ़ोन द्वारा समर्थित सभी ऑडियो फ़ाइल प्रकारों से मेल खाने के लिए फ़िल्टर को QFileDialog में फ़िल्टर करना चाहिए।माइम-प्रकार
1 - हालांकि मैं फ़िल्टर में माइम प्रकारों का उपयोग करने के लिए क्यूटी में कोई रास्ता नहीं ढूंढ पा रहा हूं। मैं उसे कैसे कर सकता हूँ?
2 - या मैं मैन्युअल रूप से mimetypes के लिए संबंधित फ़ाइल एक्सटेंशन कैसे प्राप्त कर सकता हूं? समाधान क्यूटी आधारित होना चाहिए, या कम से कम क्रॉस प्लेटफॉर्म होना चाहिए और हर जगह क्यूटी है।
#include <QApplication>
#include <QFileDialog>
#include <QStringList>
#include <phonon/backendcapabilities.h>
QStringList mime_to_exts(QString mime)
{
// WHAT TO REALLY DO ??
// NEEDLESS TO SAY; THIS IS WRONG...
return QStringList(mime.split("/").back().split('-').back());
}
int main(int argc, char **argv)
{
QApplication app(argc, argv);
app.setApplicationName("phononext");
QStringList p_audio_exts;
QStringList p_mime_types = Phonon::BackendCapabilities::availableMimeTypes();
for(QStringList::iterator i = p_mime_types.begin(), ie = p_mime_types.end(); i != ie; i++)
{
if((*i).startsWith("audio"))
p_audio_exts << mime_to_exts(*i);
}
QString filter = QString("All Files(*)");
if(!p_audio_exts.isEmpty())
{
QString p_audio_filter = QString("Audio Files (*.%1)").arg(p_audio_exts.join(" *."));
filter = QString("%1;;%2").arg(p_audio_filter).arg(filter);
}
QFileDialog::getOpenFileName(NULL, "Open Audio File", QString(), filter);
}
अच्छा, यह एक अच्छा समाधान है। जहां तक मैं देख सकता हूं वहां दो दोष हैं। एक मामूली, यह है कि संवाद में फ़िल्टर ड्रॉपडाउन बॉक्स को अनुमति फ़ाइल प्रकारों से भरा नहीं जाएगा। हालांकि आप शायद कुछ वर्णनात्मक पाठ डाल सकते हैं। मेरे मामले में "ऑडियो फाइलें" की तरह। एक और गंभीर दोष यह है कि आप अब मूल फ़ाइल संवाद का उपयोग नहीं कर सकते हैं। यह मेरे लिए एक शो स्टॉपर है और मेरा अंतिम (?) समाधान मेरे आवेदन के साथ mime.types फ़ाइल को शिप करना है, लेकिन मुझे इससे नफरत है! यदि आपको मूल संवाद की परवाह नहीं है तो यह मेरी राय में एक बेहतर समाधान है। इसलिए मैं इसे सही उत्तर के रूप में चिह्नित करता हूं। – Mathias
हाँ, मूल फ़ाइल संवाद के उनके लाभ और उनकी समस्याएं हैं। वे क्यूटी संवाद (विशेष रूप से नेटवर्क शेयरों और पसंदीदा के साथ) से अधिक विश्वसनीय हैं, लेकिन आप क्यूटी संवाद के साथ बटन टेक्स्ट और अन्य चीजों को कस्टमाइज़ नहीं कर सकते हैं। डब्लूआरटी ड्रॉपडाउन फ़िल्टर, आप सही हैं। मुझे उत्सुकता है कि फ़ाइलों को प्रॉक्सी मॉडल के बाद विस्तार के आधार पर फ़िल्टर किया गया है, लेकिन निश्चित रूप से जानने के लिए परीक्षण नहीं किया गया है। –