मैं लंबे समय के लिए स्ट्रिंग के लिए संख्या परिवर्तित करने के लिए हो, तो निम्न से कुछ बेहतर है, अब मैं सोच रहा हूँ QString उपयोग कर रहे हैं :: संख्या())? मैं दस्तावेज़ की जाँच की, लगता है केवल "% 1" लागू होता है, जैसे "% d" कोई अन्य सामानतर्क() के साथ क्यूस्ट्रिंग में संख्या जोड़ना, क्या बेहतर तरीके हैं?</p> <pre><code>int i = 0; QString msg = QString ("Loading %1").arg (QString::number (i)); </code></pre> <p>मैं कैसे छोड़ सकते हैं QString :: संख्या (:
5
A
उत्तर
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);
प्रेरणा क्या है? टाइपिंग या कुछ और सहेजने के लिए? –
@r_ahlskog, हाँ, तरह, और मैं सोच रहा हूं कि 'printf' प्रारूप स्ट्रिंग की तरह संभव है – daisy
@r_ahlskog,% 1 बहुत सामान्य लगता है – daisy