2013-02-14 58 views
20

के लिए देखो मैं अपने Kubuntu 12.10 Linux मशीन पर क्यूटी 4 के साथ Qt5 स्थापित किया है और चला है कि निम्न:मूल निवासी केडीई क्यूटी 5 एप्लिकेशन

  • कार्यक्रम क्यूटी 4 के साथ संकलित देशी केडीई देखो और महसूस किया है। मैं डिफ़ॉल्ट केडीई के ऑक्सीजन विषय का उपयोग करता हूं और इसलिए मेरा प्रोग्राम (ध्यान केंद्रित विजेट के शीर्षक और नीले चयन के साथ चिकनी ढाल नोट करें);
  • लेकिन जब कोड में कोई भी परिवर्तन के बिना Qt5 साथ कंपाइल किया, यह अलग शैली का उपयोग करता है (जैसे कि यह फ्यूजन कहा जाता है लगता है) और यह अजीब लग रहा है और बाहर के जगह (सही तस्वीर देखें)

Native look of Qt4 appNOT native look of Qt5 app

जो मैं चाहता हूं वह बहुत ही मजबूत है: मैं चाहता हूं कि मेरा ऐप आसपास के सिस्टम में फिट हो, यानी हमेशा देशी दिखें। Qt4 का उपयोग करते समय, मुझे डिफ़ॉल्ट रूप से ऐसा करने के लिए उपयोग किया जाता है। क्यूटी 5 में विंडोज़ में सामान्य देशी दिखने लगते थे। लेकिन कुबंटू में भी ऐसा करने के लिए मुझे क्या करना है? और, आदर्श, हर जगह? मेरा मतलब है, मैं अपने ऐप के लिनक्स बिल्ड को सख्ती से ऑक्सीजन का उपयोग करने के लिए मजबूर नहीं करना चाहता हूं। मैं चाहता हूं कि यह उस विषय का उपयोग करे जो वर्तमान में केडीई में सेट है: जैसे कि यह पुराने पुराने क्यूटी 4 में था।

ऐसा लगता है कि ऐप कोड इस मुद्दे से प्रासंगिक नहीं है: मैंने इसमें किसी भी QStyle के साथ नहीं खेला, यह काफी सामान्य क्यूटी की हैलो-दुनिया है। लेकिन बस it's on GitHub के मामले में।

युपीडी: @peppe has givenपर सुंदर पर्याप्त जवाब क्यों इस समस्या होता है (केडीई में ऑक्सीजन विषय क्यूटी 4 के खिलाफ संकलित और Qt5 द्वारा प्रयोग करने योग्य नहीं है)। लेकिन मैं अभी भी पर इसका उत्तर कैसे ढूंढ रहा हूं? मैंने ऑक्सीजन थीम स्रोत को चारों ओर खेलने के लिए खोजने की कोशिश की, लेकिन Firefox theme को छोड़कर कुछ भी नहीं मिला।

UPD2:suggested @kwirz एक दिलचस्प विचार: GTK + थीम का उपयोग करने के एप्लिकेशन को बलपूर्वक, और करता है कि जीटीके खिड़कियों ऑक्सीजन के समान दिखाई केडीई सेटिंग्स में ऑक्सीजन जीटीके सक्षम करें।

Semi-native look of Qt5 app using oxygen-gtk

लेकिन दूसरी तरफ, हम पहले से ही थोड़ा अंतर देख: एक तरफ, यह वास्तव में ऑक्सीजन के करीब लग रहा है केवल पढ़ने के लिए लाइन संपादित ग्रे बदल जाता है, ध्यान केंद्रित बटन अभी भी hightlighted नहीं है, आदि दुर्भाग्य से , जब इस तकनीक को लागू करने की कोशिश कर और अधिक जटिल विगेट्स, और भी अधिक कलाकृतियों प्रकट करने के लिए (विशेष रूप से कॉम्बो बॉक्स और स्पिनर पर):

Artifacts on QComboBox and QTimeEdit using oxygen-gtk

तो ऐसा लगता है कि यह तकनीक पूरी तरह से समाधान नहीं हो सकती है, लेकिन अभी भी बहुत उपयोगी मामला सरल है।

उत्तर

14

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

तो अभी, बिल्कुल कुछ नहीं है जो आप कर सकते हैं। आप अपने आवेदन देख सकते हैं और KDE 4 में अच्छा व्यवहार करने के लिए चाहते हैं, का उपयोग

QApplication::setStyle(QStyleFactory::create("GTK+")); 
समाधान के रूप में

क्यूटी 4.

+1

तो केडीई कोड से थीम के रूप में ऑक्सीजन निकालने का बिल्कुल कोई तरीका नहीं है, हां? मुझे आशा थी कि मैं इसके साथ खेल सकता हूं और इसे Qt5 के साथ बना सकता हूं ... – NIA

+0

@NIA चूंकि ऑक्सीजन केडीई पर निर्भर करता है और केडीई केवल क्यूटी 4 का उपयोग कर सकता है, आप उसी समय Qt5 और Qt4 लोड करने के बाद ऑक्सीजन का उपयोग Qt5 नहीं बना सकते हैं मुमकिन। –

+0

आह, समझ गया। केडीई 5 में केडीई में क्यूटी 5 का उपयोग नहीं करेगा, ठीक है। – NIA

9

यह आपका ऐप नहीं है - यह सिर्फ इतना है कि ऑक्सीजन क्यूटी 4 के खिलाफ संकलित है और क्यूटी 5 नहीं है, इसलिए क्यूटी 5 इसका उपयोग नहीं कर सकता है और डिफ़ॉल्ट शैली ("संलयन") पर वापस आ सकता है।याद रखें कि शैली वास्तव में प्लगइन्स - यानी कोड, लोड और उपयोग करने के लिए एपीआई/एबीआई आवश्यकताओं के अधीन है। आपको क्यूटी 5 के खिलाफ संकलित ऑक्सीजन शैली की आवश्यकता है।

+0

कोई विचार Qt5 के खिलाफ संकलित ऑक्सीजन शैलियों को कैसे प्राप्त करें और मेरे ऐप को उनके बारे में जानें? – NIA

+0

नहीं, मुझे खेद है। आपको केडीई डेवलपर्स से उनकी योजनाओं के बारे में पूछना चाहिए :-) – peppe

4

कोशिश, यह देशी लग रहा है अगर ऑक्सीजन जीटीके स्थापित किया गया है।

+0

इस विचार के लिए धन्यवाद, मैंने इसके बारे में सोचा नहीं है। मैंने इसके बारे में कुछ पंक्तियों के साथ अपना प्रश्न अपडेट कर लिया है। – NIA

0

पैरामीटर के साथ अपना Qt5 अनुप्रयोग प्रारंभ करें:

-style=gtk 

कोई वैश्विक सेटिंग है कि मैं के बारे में पता है, कि सभी QT5 क्षुधा के लिए इस बनाता है।

शुभकामनाएं!

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

  • कोई संबंधित समस्या नहीं^_^