अतिरिक्त ड्रॉप डाउन करने के लिए मैं अपनी कंपनी के लिए एक पाठक तालिका बनाने के लिए क्यूटी का उपयोग कर एक छात्र प्रोग्रामर हूं। यह पाठक एक संपादक और कनवर्टर दोनों है। यह एक .i फ़ाइल में पढ़ता है एक पाठ दस्तावेज़ के तालिका संपादन की अनुमति देता है और फिर एक .scf फ़ाइल डालता है जो अनिवार्य रूप से एक अलग मूल्य फ़ाइल है जो हेडर के साथ बनाई गई किंवदंती के नीचे है। मैं digress ... मूल रूप से आयातित फ़ाइल प्रारूप वास्तव में स्कैन और पढ़ने के लिए मुश्किल है (ज्यादातर असंभव) तो मैं खुली फ़ाइल preBuilt QFileDialog को संशोधित करना चाहता हूं ताकि अतिरिक्त ड्रॉप प्रकार को घोषित किया जा सके जब पुरानी फ़ाइल प्रकार घोषित करने के लिए चुने जाते हैं उनके टेम्पलेट हेडर।QFileDialog संशोधित करना :: getOpenFileName
जब उपयोगकर्ता .i एक्सटेंशन फ़ाइलों (विकल्प 2 फ़ाइल प्रकार) का चयन करता है, तो मैं उपयोगकर्ता को यह चुनने के लिए अतिरिक्त ड्रॉप डाउन मेनू सक्षम करना चाहता हूं कि यह किस प्रकार की .i फ़ाइल है (टेम्पलेट चयनित)। इस तरह मुझे भगवान से निपटने की ज़रूरत नहीं है जानता है कि प्रत्येक शीर्षलेख को प्रत्येक अलग-अलग प्रकार के लिए तालिका में अनुक्रमणित करने का तरीका जानने का कितना घंटे लगता है।
QString fileLocation = QFileDialog::getOpenFileName(this,("Open File"), "", ("Simulation Configuration File(*.scf);;Input Files(*.prp *.sze *.i *.I *.tab *.inp *.tbl)")); //launches File Selector
मैं QFileDialog Documentation संदर्भित किया गया है कोशिश करते हैं और मैं क्या जरूरत है, लेकिन कोई लाभ नहीं हुआ पड़ा है करने के लिए एक समाधान खोजने के लिए: वर्तमान में मेरी importFile समारोह संवाद इस का उपयोग करते हुए कहता है। मेरी पोस्ट पढ़ने के लिए धन्यवाद और किसी भी दिशा के लिए अग्रिम धन्यवाद, जो आप इस पर दे सकते हैं।
अद्यतन मार्च 16 2012; सबसे पहले मैं इस मामले में अपने शुरुआती समर्थन के लिए मास्सी को धन्यवाद देना चाहता हूं। नीचे कनेक्ट स्टेटमेंट है जो मुझे प्राप्त त्रुटि के साथ है।
//Declared data type
QFileDialog openFile;
QComboBox comboBoxTemplateSelector;
connect(openFile, SIGNAL(currentChanged(const &QString)), this, SLOT(checkTemplateSelected()));
openFile.layout()->addWidget(comboBoxTemplateSelector);
मैंने यह भी देखा है कि यह जिस तरह से मैं संशोधित संवाद के लेआउट को QComboBox जोड़ा (जो दूसरी त्रुटि है) पसंद नहीं आया। मुझे सच में उम्मीद है कि मैं बस कुछ गूंगा कर रहा हूं और इसे दूर करने का एक आसान काम है।
tmpearce की टिप्पणी के जवाब में मेरा हेडर कोड है;
#include <QWidget>
namespace Ui {
class ReaderTable;
}
class ReaderTable : public QWidget
{
Q_OBJECT
public:
explicit ReaderTable(QWidget *parent = 0);
~ReaderTable();
public slots:
void checkTemplateSelected();
void importFile();
void saveFile();
private:
Ui::ReaderTable *ui;
};
इस चुनौती में किसी भी योगदान के लिए अग्रिम पढ़ने और धन्यवाद के लिए धन्यवाद!
क्या कोई कारण है कि आप केवल 'QString' लौटा नहीं सकते हैं, और यदि आवश्यक हो तो ड्रॉप-डाउन मेनू के साथ दूसरा संवाद पॉप अप करें? यह अतिरिक्त कार्यक्षमता रखने के लिए QFileDialog को संशोधित करने की कोशिश करने से अधिक (संभवतः) अधिक सरल होगा। – tmpearce
मैं पूरी तरह से सहमत हूं; मुझे यह भी लगता है कि यह हमारे ग्राहकों के लिए अधिक मार्गदर्शक होगा क्योंकि वे फ़ाइल प्रकारों को जांचने की सोच नहीं सकते हैं जिन्हें प्रदर्शित करने की अनुमति है। हालांकि, मुझे लगता है कि मेरी कंपनी पुरानी फ़ाइल प्रकारों को वास्तव में जितनी जल्दी हो सके विलुप्त होने के लिए थोड़ा मुश्किल बनाना चाहती है। सभी राय एक तरफ; हमारे पास इन फ़ाइलों के साथ कभी मानक नहीं था (यही कारण है कि चयनित टेम्पलेट्स इतने जरूरी हैं) और यह नया एक्सटेंशन उस पर एक प्रयास है। –
अच्छा, अगर आप फ़ाइल संवाद खोलते समय इसे करना चाहते हैं, तो 'QFileDialog :: फ़ाइल चयनित' सिग्नल पर एक नज़र डालें। इसके लिए आपको स्थिर फ़ंक्शन 'getOpenFileName' का उपयोग न करने की आवश्यकता होगी - इसके बजाय, एक संवाद स्वयं बनाएं और इस सिग्नल को एक स्लॉट से कनेक्ट करें जिससे आप ड्रॉप-डाउन मेनू के साथ कस्टम संवाद पॉप अप कर सकते हैं (यदि वह फ़ाइल प्रकार चुना गया था) और प्रत्येक बार एक आइटम क्लिक होने पर यह होगा। – tmpearce