2011-01-21 12 views
6

मैं क्यूटी और स्किनिंग के संबंध में ऋषि से परामर्श करना चाहता था, अपनी राय प्राप्त कर सकता हूं और अपने विकास के लिए पथ तैयार कर सकता हूं।क्यूटी और यूआई स्किनिंग

  1. मेरे क्यूटी/C++ आवेदन (मैक, विंडोज और लिनक्स संस्करणों के साथ पार मंच) मॉड्यूलर खाल की जरूरत है: मेरी आवश्यकताओं इस प्रकार हैं।

  2. एक त्वचा को एक या अधिक तत्वों के सेट के रूप में परिभाषित किया जाता है: - विंडो पृष्ठभूमि बनावट - यूआई नियंत्रणों जैसे दिखने वाले बक्से, ड्रॉप डाउन, रेडियो बटन, बटन इत्यादि के देखो/महसूस करें - खिड़की के देखो/महसूस करें " कैप्शन ", आकार का आकार इत्यादि।

  3. स्किन्स एप्लिकेशन इंस्टॉलर के साथ स्थापित किए जाएंगे, जिससे उपयोगकर्ता यह चुनने की अनुमति दे सके कि वह किसके लिए उपयोग करना चाहता है। उपयोगकर्ताओं को फ्लाई पर खाल बदलने में सक्षम होना चाहिए।

क्या मैं क्यूएमएल मार्ग जा सकता हूं? क्या यह कस्टम होना चाहिए और सरल संसाधनों पर आधारित होना चाहिए जो आवेदन में बनाए गए हैं? किसी भी डिजाइन सलाह की सराहना की जाएगी।

धन्यवाद।

उत्तर

7

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

http://labs.qt.nokia.com/2007/11/27/theming-qt-for-fun-and-profit/

http://doc.qt.nokia.com/latest/stylesheet.html

+0

क्या स्टाइलशीट के लिए एप्लिकेशन के साथ "संकलित" होने का कोई तरीका है और इंस्टॉलेशन फ़ोल्डर के अंदर फ़ाइल पर मौजूद नहीं है? मेरा मतलब है, मैं डिफ़ॉल्ट स्टाइलशीट को छेड़छाड़ करने के लिए चाहता हूं, जबकि उपयोगकर्ता के पास अपना स्वयं का उपयोग करने की क्षमता होनी चाहिए। – JasonGenX

+0

एप्लिकेशन के साथ एक या अधिक स्टाइलशीट में संकलन करना निश्चित रूप से संभव है। क्यूटी के संसाधन प्रणाली पर एक नज़र डालें, जो इसे करना चाहिए। –

+0

और मुझे वास्तव में कोई जानकारी नहीं है कि डिफ़ॉल्ट शैली को छेड़छाड़ क्यों किया जाना चाहिए? वास्तव में, डिफ़ॉल्ट शैली बहुत अच्छी उदाहरण है कि आपके आवेदन की स्टाइल कैसे की जा सकती है, क्योंकि आप अपने पूरे स्किनिंग दस्तावेज को छोड़ सकते हैं। मैं संदर्भ के लिए भी अपनी यूआई फाइलें प्रदान करता हूं। –

0

मैंने अभी तक क्यूएमएल के साथ नहीं खेला है, लेकिन आप अपने संसाधन प्रारूप का समर्थन करने वाले कस्टम QStyle कार्यान्वयन भी बना सकते हैं। ध्यान दें कि यदि आप इस मार्ग पर गए तो आप स्टाइल शीट समर्थन खो देंगे।

यदि आप पोर्टेबिलिटी चाहते हैं तो विंडो कैप्शन बदलना थोड़ा सा ट्रिकियर है।

+0

QStyle उदाहरण के लिए हुक्म चलाना कर सकते हैं एक खिड़की (विजेट) के लिए नई पृष्ठभूमि छवि:

यहाँ संसाधनों जल्दी से चल रहा है कि आप और प्राप्त कर सकते हैं की एक सूची है? या खिड़की के लिए एक नया आकार बदलने की पकड़? – JasonGenX

+0

शायद पहले के लिए, लेकिन आप अपने QMainWindow कार्यान्वयन में कस्टम पेंट हैंडलर का भी उपयोग कर सकते हैं। निश्चित रूप से दूसरे के लिए हां। – ChrisV

0

QML, IIUC, वास्तव में विगेट्स त्वचा नहीं है, यह मुख्य रूप से के साथ संबंधित जीयूआई लेआउट आदि आदि

QStyle दिखता है बदलने के लिए प्रयोग किया जाता है। हालांकि यह थोड़ा कम स्तर है, और प्रोग्रामिंग की आवश्यकता है, इसलिए यदि आप अलग-अलग उपयोगकर्ता द्वारा निर्मित खाल (एक एक्सएमएल से या तो) लोड करना चाहते हैं तो व्यापक स्किनिंग का समर्थन करना मुश्किल हो सकता है। चेनिंग रंग और कुछ आइटम हालांकि काफी आसान हैं। (ऐसा कोई और व्यक्ति हो सकता है जिसने आप दोबारा उपयोग कर सकें .. सुनिश्चित नहीं है।)

विगेट्स को संशोधित करने के लिए, QStyle::polish() का उपयोग करें। आप पृष्ठभूमि चित्र को बदलने के लिए इसका उपयोग कर सकते हैं (यदि यह शीर्ष-स्तरीय विंडो है, या किसी निश्चित वर्ग का)। प्रत्येक विजेट के लगभग हर हिस्से को बदलने के लिए कई पुनर्विचार विधि हैं।

QApplication के बाद वांछित शैली को पढ़ने और सेट करके, लेकिन आपकी मुख्य विंडो का निर्माण करने से पहले QSettings का उपयोग करके शैली को स्टोर/लोड करें।

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