Qt Quick 1.1/QML的文本缩放效果不佳

Qt Quick 1.1/QML的文本缩放效果不佳,qt,qml,qt-quick,qtquick2,Qt,Qml,Qt Quick,Qtquick2,我正在Windows 7 PC上使用Qt 4.8.4(MSVC 2010)开发一个软件应用程序。我刚刚从QWidget框架切换到QML/QtQuick 1.1声明性框架,但是我注意到在QtQuick/QML中,文本缩放非常差。字母经常被剪掉或稍微歪斜 在下图中由于窗口大小调整,文本已被缩放,但每次看起来都不一样 以下是我使用的缩放函数: scale: paintedWidth > maxWidth ? Math.max((maxWidth / Math.max(paintedWidth,

我正在Windows 7 PC上使用Qt 4.8.4(MSVC 2010)开发一个软件应用程序。我刚刚从QWidget框架切换到QML/QtQuick 1.1声明性框架,但是我注意到在QtQuick/QML中,文本缩放非常差。字母经常被剪掉或稍微歪斜

在下图中由于窗口大小调整,文本已被缩放,但每次看起来都不一样

以下是我使用的缩放函数:

scale: paintedWidth > maxWidth ? Math.max((maxWidth / Math.max(paintedWidth, 1)), 0.1) : 1
基本上,此缩放函数仅当文本大于其所在容器的大小时才将文本向下缩放。这是它应该做的

我只是想知道是否有任何可能的方法来改进QML/Qt Quick 1.1中的文本缩放,以及是否有其他人注意到了这个问题?

我知道在QtQuick 2中的文本缩放方面已经做了一些工作,但不幸的是,由于兼容性问题,目前无法将我们的UI升级到QtQuick 2


首先要尝试的是设置
平滑:true

如果正在为缩放设置动画,则在字体以不同大小渲染时,仍可能会注意到由于暗示而导致的不规则。您可能会成功地强制文本元素进入代码路径,将文本缓存到图像中,然后图像将被缩放,而不是直接绘制文本:

smooth: true
style: Text.Raised
styleColor: "transparent"

出现这种外观的另一个原因可能是文本的位置没有与像素对齐,即父元素的
y
不是一个整数,或者
y
不是一个整数。

是的,您是对的,设置smooth true总是让事情看起来更好一些。虽然我不太确定我是否理解你说的不对齐像素是什么意思?我通常坚持使用锚来布置QML。我猜您的建议是,它可能有助于计算缩放文本的高度,并确保这是一个整数?这不是像素对齐:
text{y:0.5;text:“hello”}
。如果你使用的是锚定和整数,那就没问题了。啊,我明白了,是的,我通常都坚持基于锚定的布局,因为这个原因。我没有注意到在缩放之前向QML文本元素添加
style:Text.Raised styleColor:“transparent”
。不过,感谢您的建议,我会将您的回答标记为真实,因为设置平滑确实有帮助,尽管不如其他平台那么好,但更好。我希望Qt Quick 2中已经解决了这个问题。