Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 快速文本_Windows_Qt_Opengl_Qml_Qtquick2 - Fatal编程技术网

Windows 快速文本

Windows 快速文本,windows,qt,opengl,qml,qtquick2,Windows,Qt,Opengl,Qml,Qtquick2,这是一个来自Qt Creator内部的Qt Quick examples的示例,当我运行该项目时,所有文本都失去了质量并变得模糊,所附图片清楚地描述了问题 Qt版本:5.4.1 平台:Windows7 这将以本机呈现方式呈现字体。但不能解决默认Qt渲染的问题 import QtQuick 2.4 import QtQuick.Window 2.0 Window { visible: true width: 512 height: 300 Text {

这是一个来自Qt Creator内部的Qt Quick examples的示例,当我运行该项目时,所有文本都失去了质量并变得模糊,所附图片清楚地描述了问题

Qt版本:5.4.1

平台:Windows7


这将以本机呈现方式呈现字体。但不能解决默认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
    }
}

当Qt使用系统OpenGL功能时,这是一个可能在某些硬件上重现的老错误

在QtVersion5.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
有关解释,请参阅

角度构建没有这样的缺陷。只有OpenGL构建受到影响。默认情况下,许多Windows安装都不支持OpenGL。在某些情况下,它可能只是在QML窗口初始化期间崩溃。需要手动安装视频驱动程序。然而,对于一些旧的硬件来说,找到这样好的视频卡驱动程序来支持OpenGL是一个问题

可能的解决办法:

  • 使用角度Qt构建
  • 可以使用默认呈现类型对标准QML
    Text
    控件进行子类化。NativeRendering:
如果不支持Windows XP,ANGLE Qt build可能是一个很好的解决方案

如果不需要大量使用图形,更好的解决方案是使用软件OpenGL渲染。在Qt5.4之前,可以使用MSYS Mesa库
opengl32.dll
(只应使用某些特定版本)。如果将该库放在使用OpenGL Qt版本构建的Qt应用程序的可执行文件夹中,则该库将自动用于软件渲染,而不是默认的硬件渲染。从Qt5.4开始,此类库由Qt:
opengl32sw.dll
()提供

OpenGL仿真软件可以在所有类型的硬件上完美工作,并且不需要任何特殊的视频卡驱动程序

从Qt 5.4开始,有一个应用程序属性:

强制在上使用基于软件的OpenGL实现 使用OpenGL实现动态加载的平台。这 通常是的修补版本,提供OpenGL 2.1. 如果没有此类OpenGL实现,则该值可能无效。此库的默认名称为
opengl32sw.dll
,可以 通过设置环境变量
QT\u OPENGL\u DLL
可以覆盖。看见 例如,有关更多信息,请参阅特定于平台的页面 信息。该值已添加到Qt 5.4中


这也发生在我的Qt5.4.2mingw项目上。使用Text.NativeRendering解决了我案例中模糊的文本。

我如何解决这个问题?尝试将Text renderType设置为Text.NativeRendering对我来说就像一个图形驱动程序错误。按钮自动以本机方式呈现,这不是问题所在。找到解决方案了吗?同样的问题这里的控件不是模糊的,只是文本。使用QQuickWindow::setTextRenderType(QQuickWindow::NativeTextRendering)。
Text { renderType: Text.NativeRendering; }