Si tratta di un vecchio bug che possono essere riprodotte su alcuni hardware quando Qt utilizza le funzionalità di sistema OpenGL "[QTBUG-31983] Font rendering on Windows XP shows artifacts with QML Text element"
Prima Qt versione 5.5 ci sono due tipi di Qt versioni per Windows: Angolo e OpenGL. Essi possono essere distinti dal suffisso "opengl" nel nome del file di installazione, ad esempio:
qt-opensource-windows-x86-msvc2013_opengl-5.4.1.exe
qt-opensource-windows-x86-msvc2013-5.4.1.exe
Vedere "Qt 5 on Windows ANGLE and OpenGL" per la spiegazione.
La build ANGLE non presenta tale difetto. È interessata solo la build OpenGL. OpenGL è scarsamente supportato di default su molte installazioni di Windows. In alcuni casi può bloccarsi durante l'inizializzazione della finestra QML. Era richiesta l'installazione manuale del driver video. Tuttavia, per alcuni vecchi hardware è un problema trovare un driver di scheda video così buono che abbia abbastanza supporto per OpenGL.
Possibili soluzioni:
- Usa ANGOLO Qt costruire
- E 'possibile creare una sottoclasse del controllo standard QML
Text
con predefinito tipo Text.NativeRendering
di rendering:
Text { renderType: Text.NativeRendering; }
ANGOLO Qt build potrebbe essere una buona soluzione se Windows XP non dovrebbe essere supportato.
Se non è richiesto un uso intensivo della grafica, la soluzione migliore è utilizzare il software di rendering OpenGL. Prima di Qt 5.4 è stato possibile utilizzare la libreria MSYS Mesa opengl32.dll
(si dovrebbe usare solo una versione specifica). Se tale libreria viene collocata nella cartella eseguibile dell'applicazione Qt creata con la versione Qt OpenGL, tale libreria viene automaticamente utilizzata per il rendering del software invece del rendering hardware predefinito. A partire da Qt 5.4 tale libreria è fornita da Qt: opengl32sw.dll
(http://doc.qt.io/qt-5/windows-requirements.html).
Il software di emulazione OpenGL funziona perfettamente su tutti i tipi di hardware e non richiede alcun driver di scheda video speciale.
A partire da Qt 5.4 c'è l'attributo di applicazione Qt::AA_UseSoftwareOpenGL
:
Forze l'utilizzo di un'applicazione OpenGL software basato su piattaforme che utilizzano il caricamento dinamico di attuazione OpenGL. Questo sarà in genere una versione patchata di Mesa llvmpipe, che fornisce OpenGL 2.1.Il valore potrebbe non avere alcun effetto se nessuna implementazione OpenGL è disponibile. Il nome predefinito di questa libreria è opengl32sw.dll
e può essere sostituito con impostando la variabile di ambiente QT_OPENGL_DLL
. Vedere le pagine specifiche della piattaforma, ad esempio Qt for Windows, per ulteriori informazioni . Questo valore è stato aggiunto in Qt 5.4.
fonte
2015-11-11 14:58:49
Come posso risolvere quello? –
Provare a impostare il testo renderType su ** Text.NativeRendering ** http://doc.qt.io/qt-5/qml-qtquick-text.html#renderType-prop – danielfranca
Sembra un bug del driver grafico per me. I pulsanti rendono automaticamente il rendering nativo a questo non può essere il problema. –