调试技巧#
在本页中,我们分享了不同的技术和工具,这些技术和工具已经集成到 Slint 中,可以帮助您跟踪设计和开发过程中可能遇到的不同问题。
调试属性值#
使用 debug()
函数将属性的值打印到 stderr。
慢动画#
用户界面中的动画需要仔细设计,以确保具有正确的持续时间,并且元素定位或大小的更改需要遵循缓动曲线。
要检查应用程序中的动画,请在运行程序之前设置 SLINT_SLOW_ANIMATIONS
环境变量。此变量接受无符号整数值,该值是全局减慢所有动画步骤的因子。这意味着您不必对 .slint
标记进行任何手动更改并重新编译。例如,SLINT_SLOW_ANIMATIONS=4
将动画减慢四倍。
用户界面缩放#
在 .slint
文件中使用逻辑像素长度,让 Slint 根据屏幕的设备像素比动态计算物理像素的数量。为了对个别元素在不同设备像素比的屏幕上的外观有所了解,请在运行程序之前设置 SLINT_SCALE_FACTOR
环境变量。此变量接受浮点数,用于将逻辑像素长度转换为物理像素长度。例如,SLINT_SCALE_FACTOR=2
以逻辑像素的两倍宽度和高度呈现用户界面。
注意:目前,只有 FemtoVG 和 Skia 渲染器支持此环境变量。
性能改进的调试#
Slint 尝试使用硬件加速来确保渲染用户界面时消耗的 CPU 资源最少,同时保持平滑的动画。但是,根据用户界面的复杂性、图形驱动程序的质量或系统中 GPU 的功率,您可能会遇到限制并遇到缓慢的情况。为了解决这个问题,在运行程序之前设置 SLINT_DEBUG_PERFORMANCE
环境变量,以检查帧率。以下选项会影响帧率检查和报告:
refresh_lazy
:仅在实际渲染帧时(例如由于运行动画、用户交互或某些其他状态更改而导致的)测量帧率。如果没有更改,则报告低帧率。使用此选项来验证在没有视觉变化的情况下不会发生不必要的重绘。例如,在用户界面中,显示带有每秒闪烁一次的光标的文本输入字段的情况下,报告的帧率应为两个。refresh_full_speed
:用户界面被连续刷新,即使没有任何更改。这种连续的刷新会增加系统负载。使用此选项来识别任何阻止您实现平滑动画的瓶颈。还禁用软件渲染器的部分渲染。console
:帧率在控制台上打印到stderr
。overlay
:帧率作为覆盖文本标签呈现在每个窗口的顶部。
使用这些选项的组合,用逗号分隔。您必须选择一种帧率测量方法和一种报告方法的组合。例如,SLINT_DEBUG_PERFORMANCE=refresh_full_speed,overlay
会在每个窗口中重复重新渲染整个用户界面,并在左上角打印实现的帧率。相比之下,SLINT_DEBUG_PERFORMANCE=refresh_lazy,console,overlay
仅在用户界面中的某些内容发生更改且测量值打印到 stderr
时才测量帧率。
必须在运行程序之前设置环境变量。如果应用程序在没有标准库的微控制器上运行,则必须在编译期间设置环境变量。