2011-01-09 6 views
5

मैं एक QMdiSubWindow के शीर्षक पट्टी को कस्टमाइज़ करना चाहता हूं। इसके लिए मैं एक क्यूएसएस का उपयोग करता हूं।क्यूएसएस के साथ QMdiSubWindow के शीर्षक पट्टी को कैसे अनुकूलित करें?

QMdiSubWindow { border: 1px solid #000000; background: #000000 } 
QMdiSubWindow:title { background: #000000 } 

समस्या यह है कि इस qss को लागू करते समय समस्या विंडो गायब हो जाती है। मैं जानता हूँ कि यह हालांकि मैं एक QMdiSubWindow के लिए इसे परिभाषित करने के लिए एक रास्ता नहीं मिल सकता है एक QDockWidget

QDockWidget { ... titlebar-close-icon: url(myCloseIcon.png); ... } 

के लिए QSS में इन चिह्नों को परिभाषित करने के लिए संभव है। शायद इस तरह से मौजूद नहीं है। क्या आप जानते हैं कि यह संभव है?

+0

यह कई सालों से अब एक मुद्दा है। शैली एमडीआई बच्चों के लिए कोई कामकाज है? – cytrinox

उत्तर

1

Qt 5.2 के रूप में आप नहीं कर सकते; 5.3 की जांच नहीं की है लेकिन AFAIK नेरिलीज में QMdiArea/QMdiSubWindow में कुछ भी नहीं बदला है।

आपके पास सबसे आसान समाधान QCommonStyle का उपयोग करना है और QPainter का उपयोग करके शीर्षक पट्टी को पेंट करना है। उस पर अधिक जानकारी के लिए QCommonStyle और QStyle दस्तावेज़ देखें। कृपया ध्यान दें कि आपकी शैली वर्ग के लिए QCommonStyle और QStyle प्राप्त करने की अनुशंसा की जाती है। QCommonStyle विरासत QStyle ताकि आप कुछ भी खोले नहीं जाएंगे।

और आप इस तरह के उप खिड़की पर ड्रॉप छाया तो एकमात्र विकल्प तुम यहाँ छोड़ दिया है QMdiSubWindow और QMdiArea निकाले जाते हैं, QMdiSubWindow व्युत्पन्न वर्ग पर QWidget::setWindowFlags(Qt::FramelessWindowHintflag) फोन और खरोंच अपनी खुद की subwindow से लागू करने के लिए है के रूप में और अधिक जटिल प्रभाव को प्राप्त करना चाहते हैं अपने खुद के शीर्षक पट्टी के साथ। इसके बाद आप अपने Q_PROPERTY प्रकार QColor प्रकार को परिभाषित कर सकते हैं और QSS से टाइटलबार रंगों को कस्टमाइज़ करने के लिए here जैसे QSS से उन तक पहुंच सकते हैं।

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

लेकिन यदि आप मानक QMdiSubWindow को केवल QSS का उपयोग करके अनुकूलित करना चाहते हैं, तो दुर्भाग्यवश इस पल के लिए संभव नहीं है।

+1

एक अच्छा समाधान लगता है, धन्यवाद। – cytrinox

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