模糊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有足够支持的优秀视频卡驱动程序是个问题。

可能的解决方案:

  • 使用ANGLE Qt构建
  • 可以使用默认的渲染类型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

    上一篇: Blurred Qt Quick Text

    下一篇: Global instance of a class or static class with initialization method