模糊QT快速文本
这是Qt Creator中Qt Quick示例的一个例子,当我运行项目时,所有文本都失去了质量并模糊不清,附图清楚地描述了问题。
Qt版本:5.4.1
平台:Windows 7
这是一个旧的bug,当Qt使用系统OpenGL功能时,可能在某些硬件上复制“[QTBUG-31983] Windows XP上的字体渲染显示带有QML文本元素的工件”
在Qt 5.5之前,Windows有两种类型的Qt版本:ANGLE和OpenGL。 它们可以通过安装程序文件名中的后缀“opengl”加以区分,例如:
qt-opensource-windows-x86-msvc2013_opengl-5.4.1.exe
qt-opensource-windows-x86-msvc2013-5.4.1.exe
有关说明,请参阅“Windows ANGLE和OpenGL上的Qt 5”。
ANGLE版本没有这样的缺陷。 只有OpenGL版本受到影响。 在许多Windows安装中,默认情况下,OpenGL得到的支持很差。 在某些情况下,它只会在QML窗口初始化期间崩溃。 手动视频驱动程序安装是必需的。 但是,对于一些旧硬件来说,找到对OpenGL有足够支持的优秀视频卡驱动程序是个问题。
可能的解决方案:
Text.NativeRendering
标准的QML Text
控件: Text { renderType: Text.NativeRendering; }
如果不支持Windows XP,则角度Qt构建可能是一个很好的解决方案。
如果不需要强化图形使用,更好的解决方案是使用软件OpenGL渲染。 在Qt 5.4之前,可以使用MSYS Mesa库opengl32.dll
(只应使用某些特定版本)。 如果将这样的库放置在使用OpenGL Qt版本构建的Qt应用程序的可执行文件夹中,则该库将自动用于软件渲染而不是默认硬件渲染。 从Qt 5.4开始,这样的库由Qt: opengl32sw.dll
(http://doc.qt.io/qt-5/windows-requirements.html)提供。
软件OpenGL仿真适用于所有类型的硬件,它不需要任何特殊的视频卡驱动程序。
从Qt 5.4开始,有应用程序属性Qt::AA_UseSoftwareOpenGL
:
强制在使用动态加载OpenGL实现的平台上使用基于软件的OpenGL实现。 这通常是Mesa llvmpipe的补丁版本,提供OpenGL 2.1。 如果没有这样的OpenGL实现可用,该值可能不起作用。 该库的默认名称是opengl32sw.dll
,可以通过设置环境变量QT_OPENGL_DLL
来覆盖。 查看平台特定的页面,例如Qt for Windows,以获取更多信息。 该值已添加到Qt 5.4中。
这使用本机渲染渲染字体。 但是不能解决默认Qt渲染的问题。
import QtQuick 2.4
import QtQuick.Window 2.0
Window {
visible: true
width: 512
height: 300
Text {
anchors.centerIn: parent
text: "Hello World!"
renderType: Text.NativeRendering
}
}
链接地址: http://www.djcxy.com/p/84523.html
下一篇: Global instance of a class or static class with initialization method