2011-11-24 4 views
5

मैं लंबे समय के लिए स्ट्रिंग के लिए संख्या परिवर्तित करने के लिए हो, तो निम्न से कुछ बेहतर है, अब मैं सोच रहा हूँ QString उपयोग कर रहे हैं :: संख्या())? मैं दस्तावेज़ की जाँच की, लगता है केवल "% 1" लागू होता है, जैसे "% d" कोई अन्य सामानतर्क() के साथ क्यूस्ट्रिंग में संख्या जोड़ना, क्या बेहतर तरीके हैं?</p> <pre><code>int i = 0; QString msg = QString ("Loading %1").arg (QString::number (i)); </code></pre> <p>मैं कैसे छोड़ सकते हैं QString :: संख्या (:

+0

प्रेरणा क्या है? टाइपिंग या कुछ और सहेजने के लिए? –

+0

@r_ahlskog, हाँ, तरह, और मैं सोच रहा हूं कि 'printf' प्रारूप स्ट्रिंग की तरह संभव है – daisy

+0

@r_ahlskog,% 1 बहुत सामान्य लगता है – daisy

उत्तर

8

काम कर सकता था आप सीधे तरह arg() उपयोग कर सकते हैं इस

int i = 0; 
QString msg = QString ("Loading %1").arg(i); 

क्यूटी स्वचालित रूप से करने के लिए आप

यह परिवर्तित कर देंगे
0

QString दस्तावेज़ पर एक नज़र डालें। आपके पास बहुत सारे :: arg विधि अधिभार हैं, जो विभिन्न प्रकार लेते हैं। क्यूस्ट्रिंग को यह जानने की आवश्यकता नहीं है कि किस प्रकार% n के अंतर्गत होगा, उस% n को बदलने की विधि इसे जान लेगी और उचित मूल्य रखेगी।

10

क्यूस्ट्रिंग का arg() फ़ंक्शन वास्तव में कई अलग-अलग प्रकारों को लागू करता है और स्वचालित रूप से यह पता लगाता है कि आप इसे प्रदान करते हैं। इसलिए

// Outputs "one two three" 
QString s = QString("%1 %2 %3").arg("one", "two", "three") 

की तरह एक भी arg() कॉल करने के लिए एक से अधिक पैरामीटर प्रदान करना ही (और इसलिए const char*) पैरामीटर QString के लिए लागू किया गया है।

हालांकि, आप कर सकते हैं श्रृंखला आर्ग एक साथ कॉल और अभी भी नंबर प्रणाली का उपयोग करें:

int i = 5; 
size_t ui = 6; 
int j = 12; 
// Outputs "int 5 size_t 6 int 12" 
qDebug() << QString("int %1 size_t %2 int%3").arg(i).arg(ui).arg(j); 
// Also outputs "int 5 size_t 6 int 12" 
qDebug() << QString("int %1 int %3 size_t %2").arg(i).arg(j).arg(ui); 
संबंधित मुद्दे