2012-06-05 2 views
8

में चर का उपयोग करना .qss फ़ाइल में हेक्स/आरजीबी संख्याओं को परिवर्तनीय नाम देने की कोई संभावना है। हाँqt StyleSheets

myColor = #FFCC08 
QPushButton { background-color: myColor;} 

ताकि मैं स्टाइलशीट के शीर्ष पर चर को परिभाषित करने और जहाँ बजाय हेक्स कोड का उपयोग करने के लिए आवश्यक चर नाम का उपयोग कर सकते हैं। अगर मुझे रंग बदलने की ज़रूरत है तो मुझे एक ही स्थान पर बदलना होगा और यह फाइल के माध्यम से दिखाई देगा।

मैंने Saas की खोज की लेकिन यह नहीं पता कि इसका उपयोग क्यूटी में कैसे किया जा सकता है।

धन्यवाद :)

उत्तर

9

आप अपनी खुद की छोटे सास काफी आसानी से बना सकता है। इस तरह सरल स्वरूप का उपयोग करें:

@myColor = #FFDDEE 
@myColor2 = #112233 
@myWidth = 20px 

2.In QSS फ़ाइल उपयोग चर नाम:

QPushButton { 
    background-color: @myColor; 
    min-width: @myWidth; 
} 

3.Open दोनों फ़ाइलों और परिभाषा फ़ाइल में प्रत्येक चर के लिए मान के साथ QSS फ़ाइल में अपने घटना को बदलने (स्ट्रिंग) परिभाषा फ़ाइल से। यह एक साधारण स्ट्रिंग प्रतिस्थापन है।

4. ऐप में प्रीप्रोसेस्ड क्यूएसएस लागू करें।

यह सबसे आसान समाधान है। आप ऐप के बाहर दोनों परिभाषा फ़ाइल और क्यूएसएस फ़ाइल को बदल सकते हैं और कोड के पुन: संकलन के बिना इसे लागू कर सकते हैं।

+0

आपके समय के लिए धन्यवाद। मैंने अपना खुद का पार्सर बनाने के लिए एक ही तर्क का उपयोग किया जो वास्तविक रंग के साथ .qss फ़ाइल में परिभाषित प्रत्येक कस्टम चर-रंग को प्रतिस्थापित करता है। – SAM

3

क्या आप बस पूरा करने के लिए कोशिश कर रहे हैं शुद्ध क्यूटी स्टाइल शीट का उपयोग कर संभव नहीं है।

आप को संशोधित करने और अपने सी ++ कोड के भीतर से अपने स्टाइल शीट पुन: लोड उदाहरण के लिए, द्वारा एक समान प्रभाव को प्राप्त कर सकते हैं:

QString myColor = "#FFCC08"; 
QString styleSheet = "QPushButton { background-color: %1;}"; 
... 
myWidget->setStyleSheet(styleSheet.arg(myColor)); 

दुर्भाग्य से यह कई कमियां (डिजाइनर में पूर्वावलोकन करने के लिए अक्षमता, एक से कोड बदलने के बजाय है स्टाइल शीट), लेकिन यह करीब है जितना आप क्यूटी के साथ प्राप्त करने की कोशिश कर रहे हैं।

1. बनाएँ चर की परिभाषा के साथ एक पाठ फ़ाइल:

+0

हाँ मैं समझता हूं लेकिन उपरोक्त दृष्टिकोण के साथ समस्या यह है कि हम प्रत्येक घटक के लिए सी ++ कोड के भीतर स्टाइलशीट गुण निर्दिष्ट कर रहे हैं और एक .qss फ़ाइल से नहीं पढ़ रहे हैं। आपके समय के लिए धन्यवाद। – SAM

संबंधित मुद्दे