浅谈GUI库使用要点和递进层次

笔者从来没有进行过GUI库开发的相关工作,但是——一直很感兴趣!之前(2021春)曾经选修过一门关于react前端的课程,学习了一些前端之后。近期做毕设又用到了flet,对GUI的学习要点有了一点体悟,因此在此处介绍之。

私以为GUI库的学习和使用主要包括以下几个层次:

  1. GUI库学习
    1. 理解GUI库核心的render原理。重点在于:当发生了某些动作(比如按了按钮)使得一些组件的值发生了变化,GUI库是如何自动地捕捉并更新这些变化的组件的?
    2. 学习GUI库的各组件
      1. 基本组件,如展示文本,用于输入的文本框,按钮,checkbox,等等等等。
      2. 多媒体组件,如展示图片,展示视频等。
      3. 文件相关,如导入文件,导出文件,获取所导入文件的内容,等等。
      4. 记忆性操作。确保GUI库可以记忆一些配置或设定。
  2. GUI库使用
    1. 原则:写一点就调试一点。千万不要写很多然后一起调试,尤其是一开始不太熟的时候。
    2. 流程:
      1. view设计。基于目标功能将整个界面拆分为若干个子部分,并利用已有组件快速搭建这些子部分。
      2. 逻辑设计。通过组件的API和组件的render逻辑构建逻辑交互部分的代码。
    3. 总体上,应该积木战术。通过缝合已有的组件形成各个子部分,最后将所有的子部分进行组合。

已了解过的一些GUI库:

  1. EGUI。基于rust语言。该GUI库的render思路是:以极高的频率对所有的组件进行检测,如果检测到变动(比如按钮按下),那么就会执行对应的函数。函数如果产生了一些变量的变化,那么这些变化不会异步地进行更新,而是全同步地在这个极高的频率下进行更新。
  2. Flet,React:异步更新逻辑。

Author: Zi Liang (liangzid@stu.xjtu.edu.cn) Create Date: Fri Jan 20 11:31:05 2023 Last modified: 2024-03-09 Sat 20:56 Creator: Emacs 28.1 (Org mode 9.5.2)