2015-06-13 8 views
9

मैं अभी एक साधारण QML एप्लिकेशन विकसित कर रहा हूं और मैंने देखा है कि QML विंडो का आकार बदलना और स्थानांतरित करना उदाहरण के लिए QtWidgets विंडो की तुलना में एक बदसूरत झिलमिलाहट उत्पन्न करता है।क्यूएमएल विंडो का आकार बदलें/फ्लिकर

QWidgets:

enter image description here

QML:

enter image description here

आप टी देख सकते हैं

तो मैं अंतर दिखाने के लिए 2 परीक्षण अनुप्रयोगों बनाया वह QML एप्लिकेशन फ्लिकर का संस्करण बहुत बदसूरत है जबकि QtWidgets एक साफ़ है। जब आपका यूआई जटिलता में बढ़ता है तो अब यह बहुत बदसूरत हो जाता है।

क्या आपको इसके बारे में कोई जानकारी है? क्या यह एक बग है? क्या इस मुद्दे के लिए कोई फिक्स/वर्कअराउंड है?

+0

आप किस वीडियो कार्ड का उपयोग करते हैं? – Milovidov

+0

@ मिलोविडोव मैं एकीकृत इंटेल एचडी ग्राफिक्स 4000 का उपयोग कर रहा हूं जो इंटेल के कोर i5-3360M में एकीकृत है। –

+3

इंटेल को ओपनजीएल कार्यान्वयन के साथ समस्या है। ओपनजीएल के बिना क्यूटी प्राप्त करने या संकलित करने का प्रयास करें। इस मामले में, क्यूटी क्विक देशी विजेट्स के रूप में पेंट करेगा, जैसे कि क्यूटी विजेट समाधान। – Milovidov

उत्तर

3

आप इस कोशिश कर सकते हैं:

int main(int argc, char* argv[]) { 
QCoreApplication::setAttribute(Qt::AA_UseOpenGLES); 
or 
QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL); 

पहला विकल्प का उपयोग करता है OpenGl2DirecX कोण पुस्तकालय (गूगल क्रोम की तरह)

दूसरा एक सॉफ्टवेयर द्वारा ओपन अनुकरण का उपयोग करता है ... छोटे कार्यक्रमों के लिए बहुत अच्छा काम करते हैं और विंडोज एक्सपी जैसे पुराने ओएस के साथ 100% संगत है।

ध्यान दें: आप क्यूटी 5.7 और नए Qtquick.Controls 2.0 के साथ की कोशिश कर सकते हैं ... में बेहतर प्रदर्शन करती ... https://blog.qt.io/blog/2016/06/10/qt-quick-controls-2-0-a-new-beginning/

+0

क्यूटी 5.6.2 और इंटेल ग्राफिक्स 4000 के साथ अपने विंडोज 7 पीसी पर कोशिश की। Qt :: AA_UseOpenGLES के साथ बहुत बेहतर प्रदर्शन करता है! धन्यवाद! – mrAlmond

1

मेरे मामले में, मैं अगले झंडा जोड़कर इस हल:

QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software); 

लेकिन यह अन्य प्रतिपादन समस्याओं को जोड़ देगा। या नहीं।

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