में कमांड लाइन तर्क प्राप्त करना निम्न स्निपेट क्यूटी फ्रेमवर्क का उपयोग करके मैंने लिखा एक छोटा ऐप से है। विचार यह है कि ऐप बैच मोड में चलाया जा सकता है (यानी एक स्क्रिप्ट द्वारा बुलाया जाता है) या इंटरैक्टिव रूप से चलाया जा सकता है।एक क्यूटी अनुप्रयोग
इसलिए यह जरूरी है कि मैं जिस क्रम में जो मोड चलाने के लिए पता करने के लिए में आदेश पंक्ति तर्क पार्स करने में सक्षम हूँ आदि
[संपादित करें]
मैं क्यूटी निर्माता 1.3 का उपयोग कर रहा हूँ डिबगिंग .1 उबंटू कर्मिक पर। तर्क सामान्य तरीके से पारित किए जाते हैं (यानी उन्हें क्यूटी निर्माता आईडीई में 'प्रोजेक्ट' सेटिंग्स के माध्यम से जोड़कर)।
जब मैं ऐप चलाता हूं, ऐसा प्रतीत होता है कि तर्क एप्लिकेशन को पास नहीं किए जा रहे हैं। नीचे दिया गया कोड, मेरे मुख्य() फ़ंक्शन का एक स्निपेट है।
int main(int argc, char *argv[])
{
//Q_INIT_RESOURCE(application);
try {
QApplication the_app(argc, argv);
//trying to get the arguments into a list
QStringList cmdline_args = QCoreApplication::arguments();
// Code continues ...
}
catch (const MyCustomException &e) { return 1; }
return 0;
}
[अपडेट]
मैं इस समस्या की पहचान की है - किसी कारण से, हालांकि argc सही है, argv के तत्वों रिक्त स्ट्रिंग है।
मैंने इस छोटे कोड स्निपेट को argv आइटम्स को मुद्रित करने के लिए रखा - और यह देखने के लिए भयभीत था कि वे सभी खाली थे।
for (int i=0; i< argc; i++){
std::string s(argv[i]); //required so I can see the damn variable in the debugger
std::cout << s << std::endl;
}
क्या कोई जानता है कि मैं अपने आवेदन में कमांड लाइन तर्क कैसे प्राप्त कर सकता हूं?
आपके पास अपने प्रयास/पकड़ पर अतिरिक्त ब्रेस है। आप हमें उपयोगिता :: option_values के लिए कोड नहीं देते हैं ...क्या आप इस उदाहरण को सरल बनाने के लिए सरल नहीं कर सकते हैं कि cmdline_args.isEmpty() प्रिंट करें "ओह नहीं!"? यदि आप करते हैं, तो क्या आपको अभी भी समस्या आती है? – HostileFork
वैसे भी उपयोगिता :: विकल्प_वृत्त क्या है? मुझे क्यूटी दस्तावेज में ऐसा कुछ भी नहीं दिख रहा है। भले ही आप तर्क पारित न करें, पहला तर्क हमेशा कार्यक्रम का नाम होगा। तो मुझे लगता है कि समस्या उपयोगिता :: option_values में हो सकती है। इसके अलावा आपने argv [0], argv [1] आदि की जांच करने का प्रयास किया है ... इसे भी सही दिशा में इंगित करने के लिए .. – liaK