0 前言
耗时操作如果不给反馈,用户无法区分“程序在干活”和“程序卡死了”。下载文件、复制目录、加载大图、扫描索引,都需要一个可视化的“进行到哪了”。GTK4 为此提供了三个内置控件——进度条(GtkProgressBar)、活动指示器(GtkSpinner)、电平条(GtkLevelBar),三者分工不同、各有适用场景;内置控件不够用时,还可以用绘图 API 自绘进度。
本文覆盖选型决策、三个控件的深入用法、CSS 定制、自绘环形进度与水滴灌满(cairo 与 GSK 两条路线),以及进度更新的正确姿势。基础控件总览可参考[1],耗时任务与跨线程更新界面的完整模式可参考[2],第 6 章只在开头的更新模式上做衔接。
验证环境:Ubuntu 26.04 LTS
1 三件套与选型
1.1 三个控件的分工
三个控件的分工可以一句话概括: