2009-09-23 10 views
31

मैं क्यूटी का उपयोग कर अपने आवेदन में एक एकल, बोल्ड लाल रेखा लिखना चाहता हूं।क्यूटी में एक बोल्ड, लाल टेक्स्ट लेबल कैसे बनाएं?

जहां तक ​​मैं समझता हूँ, मैं एक QLabel बनाना होगा, रिच टेक्स्ट के लिए अपनी textFormat सेट और यह प्रदर्शित करने के लिए एक अमीर पाठ स्ट्रिंग दे:

QLabel *warning = new QLabel; 
warning->setTextFormat(Qt::RichText); 
warning->setText("{\\rtf1\\ansi\\ansicpg1252 {\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;} {\\colortbl;\\red255\\green0\\blue0;} \\f0 \\cf0 this is bold red text}"); 

मैं एक अमीर पाठ संपादक में इस अमीर पाठ स्ट्रिंग का परीक्षण किया और यह ठीक दिखाता है।

लेकिन क्यूटी पूरी स्ट्रिंग को "यह बोल्ड लाल टेक्स्ट" के बजाय सभी ब्रेसिज़, कीवर्ड और बैकस्लैश के साथ प्रदर्शित करता है। मैं क्या गलत कर रहा हूं?

आपकी मदद के लिए धन्यवाद।

उत्तर

52

HTML स्वरूपण का उपयोग करने का प्रयास करें: <b><font... etc </b>

क्यूटी डिजाइनर इस तरह यह करता है: <span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>

+11

आपको QLabel के टेक्स्टफॉर्मैट विशेषता को Qt :: RichText पर सेट करने की आवश्यकता हो सकती है। – dwj

13

क्यूटी प्रारूपण के लिए एक सरल HTML subset उपयोग करता है।

3

आप इसे settext फ़ंक्शन का उपयोग करके प्रोग्रामेटिक रूप से भी कर सकते हैं। कुछ ऐसा:

QString labelText = "<P><b><i><FONT COLOR='#ff0000' FONT SIZE = 4>"; 
labelText .append(Text what u want to display); 
labelText .append("</i></b></P></br>"); 
QLabel label->setText(labelText); 

आप इसे एक ही पंक्ति में भी कर सकते हैं।

12

आप Qt StyleSheets का उपयोग करें और QLabel

warning->setStyleSheet("font-weight: bold; color: red"); 

की styleSheet संपत्ति क्यूटी अपने QWidget व्युत्पन्न वर्गों पर सबसे सीएसएस शैलियों का समर्थन करता है निर्धारित कर सकते हैं। काम करने के लिए आपको टेक्स्ट प्रारूप को Qt::RichText पर सेट करने की आवश्यकता नहीं है।

+0

बहुत बहुत धन्यवाद। यह मेरे लिए काम किया है :) –