比 QML 更好的框架体系

Flutter Desktop 自绘(Impeller 预编译着色器,无运行时编译卡顿) ★★★★★ 2030 MB Dart
Slint 原生代码编译(Rust/C++) ★★★★★ <1 MB Rust / C++ / Python 绑定
QML (Qt Quick) Scene Graph(GPU) ★★★★☆ 30
50 MB QML + C++/JS
WinUI 3 / WPF DirectX(Windows 原生) ★★★★☆ 小 C#
Avalonia Skia(跨平台 .NET) ★★★☆☆ 中等 C#
你现在的 PyQt5 QWidget CPU 光栅化为主 ★★☆☆☆ 中等 Python

现在能打败 QML 的主要是这两个

  1. Flutter Desktop(综合最强)
    Impeller 渲染器:着色器提前编译好,首次进某个界面不会突然掉帧(这是 QML 常见的“第一下卡一下”)。
    120Hz 也能稳定跑,滚动 / 渐隐 / 缩放都很顺。
    跨平台(Win / macOS / Linux)表现一致,不像 Qt 在各平台还有差异。
    代价:包体比现在大,要换语言(Dart),现有 Python 业务逻辑要包装成 FFI / 子进程。
  2. Slint(最轻)
    Rust 写的,UI 编译成原生代码,启动快、内存小。
    自带声明式 DSL,写起来比 QWidget 手工布局舒服得多。
    有 Python 绑定,你现有的 storage / api 那套逻辑可以复用,不用全推翻。
    代价:生态小、复杂控件要自己攒、资料少。
    但这里有个关键问题
    你现在的 PC 端是 PyQt5 QWidget。它“不够流畅”的根因不一定是框架,而更可能是这两件事:

UI 操作跑到后台线程(就是你刚踩的 LoadingDialog.show 那个坑)—— 这会让弹窗/动画错乱,看起来就是卡;
耗时操作卡住主线程 —— 比如联网下单、解析 YAML 直接在 UI 线程做。

世界树

一步一步来

您可能还喜欢...