c++ - Qt QString.arg() not working -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

मैंने उपयोग करने की कोशिश की है उदाहरण Qt4.8 दस्तावेज़ में दिए गए हैं:

  #include & lt; QCoreApplication & gt; # शामिल करें & lt; QString & gt; # शामिल करें & lt; iostream & gt; Int main (int argc, char * argv []) {क्यूकोर अप ऍप्लिकेशन्सी a (argc, argv); QString str; Str = "% 1% 2"; Str.arg ("% 1f", "हैलो"); // रिटर्न "% 1f हैलो" std :: cout & lt; & lt; Str.toStdString ()। C_str () & lt; & lt; std :: endl; str.arg ( "% 1f") आर्ग ( "हैलो")।; // रिटर्न "Hellof% 2" std :: cout & lt; & lt; Str.toStdString ()। C_str () & lt; & lt; std :: endl; वापस a.exec (); }  

हालांकि यह आउटपुट:

% 1% 2

% 1% 2

दोनों बार मैंने इसे विंडोज 7 और उबंटू पर क्यूटीकियोरर और कमांड लाइन से प्रयोग करने की कोशिश की है। मैंने जांच की है कि मैंने

QMake संस्करण 2.01 ए

क्यूटी संस्करण 4.8.1 में / usr / lib / x86_64-linux-gnu का उपयोग किया है

और Windows में:

QMake संस्करण 2.01a

क्यूटी संस्करण का उपयोग 4.7.0 में सी: \ qt \ 4.7.0 \ lib

मैंने भी गैर- ascii वर्णों के लिए मेरी स्रोत फाइलों की जांच की है, उदा। "%" चिन्ह सही है कृपया मुझे बताइए कि यह क्यों काम नहीं करता है!

यहां मैं उपयोग कर रहा हूँ प्रो फ़ाइल है:

  QT + = कोर QT - = GUI TARGET = testarg CONFIG = सांत्वना CONFIG - = app_bundle TEMPLATE = ऐप स्रोत = + main.cpp  

आर्ग ( ) फ़ंक्शन QString को संशोधित नहीं करते हैं (यदि आप डॉक्स को देख रहे हैं, ये फ़ंक्शन हैं, तो const ।) इसके बजाय वे एक नई कस्टस्ट्रिंग लौटते हैं, जो कि आप कहीं भी नहीं सहेजे जाते हैं। यदि आप मूल स्ट्रिंग को संशोधित करना चाहते हैं, तो आप ऐसा कर सकते हैं:

  str = str.arg ("% 1f", "नमस्ते");  

यदि आप मूल को संरक्षित करना चाहते हैं, तो इसके बजाय सिर्फ एक नई कस्टस्ट्रिंग का प्रयोग करें:

  QString tmp = str.arg ("% 1f", "हैलो ");  

Comments