解决方法一:强制使用软件渲染器 设置环境变量 QT_QUICK_BACKEND=software 解决方法二:利用Rotation组件实现qml应用界面UI旋转 在qml源码中添加如下组件: Rotation { id: rotation origin.x: 400 //设置旋转中心的x坐标 origin.y: 400 //设置旋转中心的y坐标 angle: -90 //设置旋转角度为逆时针90度 Behavior on angle
{ NumberAnimation { duration: 1000 } }//改变旋转角度时,将在 1 秒内逐渐完成过渡 } //创建一个母窗口,名为Item Item { width: 800 //设置母窗口的宽度 height: 1280 //设置母窗口的高度 transform: rotation //之前定义的 Rotation ,应用于了母窗口,将旋转应用于母窗口Item 内部的所有子元素,都会按照设置的旋转角度围绕指定的中心点进行旋转 } 两者差异: Rotation 组件是 Qt Quick 中的一个内置组件,用于实现对象的旋转效果。它可以方便地在 QML 中使用,并且提供了一系列属性来控制旋转的中心点、角度等。由于 Rotation 组件是由 Qt Quick 引擎直接实现的,因此其性能通常是比较高效的。在硬件加速的情况下,它可以利用 GPU 加速来提高性能。 而且使用 Rotation 组件非常简单,只需在需要旋转的对象上应用即可。它提供了丰富的属性和方法,可以轻松实现各种旋转效果。 export QT_QUICK_BACKEND=software 软件渲染器: 这个设置强制 Qt Quick 使用软件渲染器而不是硬件加速的渲染器。软件渲染器通常会将渲染任务交给 CPU 处理。这会占用CPU导致性能下降,特别是在处理复杂的界面时。
有时在某些环境下,硬件加速的渲染可能会出现问题,而强制使用软件渲染器可以解决兼容性问题。可以在客户不方便修改qml程序时一种权宜之计,但这不是长期的解决方案。
|
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-11-22 05:07
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.