「GUI-TOOLKIT」- 常用 GUI 框架 | Widget Toolkit | Widget Library | UX Library

该部分是简单介绍一些「图形工具库」的内容。

认识

因为 GTK 3 的主题不紧凑,按钮、标题栏太宽,太占空间,所以尝试着写个 GTK 3 的主题。我们常说的“GTK”是一个跨平台的「图形工具库」。所以,这里先简单的了解一下「图形工具库」,对「图形工具库」有个基本的概念。

我们需要对 Zim Desktop Wiki 进行二次开发(增加我们喜欢的功能),但是该应用通过 GTK 开发,所以受制于 GTK 自身的特性;

该笔记将记录:我们尝试了解(调研)常见的 Linux 桌面环境的 GUI 框架,以及相关问题的解决办法;

组成

WIP

构建

常用的跨平台 GUI(图形用户界面)框架包括以下几种:

3)GTK:GTK 是一个为 GIMP 创造的开源跨平台工具包。它主要用于创建图形界面,但它也包含一些非 GUI 功能;

4)JavaFX:JavaFX 是一个 Java 的图形用户界面库,用于创建丰富的互联网应用程序。它支持多种操作系统,包括 Windows、Mac OS、Linux 等;

Qt

Qt 是一个跨平台的应用程序开发框架,可以在 Windows、Mac OS、Linux 和一些嵌入式操作系统上运行。它可以用 C++ 或 QML(一种 JSON 类型的声明性语言)编写;

GNUStep

访问 GNUStep 主页

GNUstep 是一个成熟的框架,适用于高级 GUI 桌面应用程序以及服务器应用程序;

该框架严格遵循苹果的 Cocoa(原 NeXT 的 OpenStep)API,但可移植到各种平台和体系结构;

Electron

Electron 是 GitHub 开发的一个开源库,用于使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序。它在 Node.js 上运行,并使用 Chromium 渲染引擎;

Coding Language | HTML, CSS and JavaScript

pywebview

Build GUI for your Python program with JavaScript, HTML, and CSS

官网:https://pywebview.flowrl.com/
文档:https://pywebview.flowrl.com/examples/
仓库:https://github.com/r0x0r/pywebview/

Webview | Java

https://github.com/webview/webview_java

chromiumembedded/cef

https://github.com/chromiumembedded/cef

nw

https://github.com/nwjs/nw.js/

https://www.fltk.org/

FLTK | Fast Light Toolkit

FLTK is a cross-platform C++ GUI toolkit for UNIX®/Linux® (X11 and Wayland), Microsoft® Windows®, and macOS®. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation.

TigerVNC / vncviewer – the cross-platform TigerVNC Viewer, written using FLTK.

Python GUI Frameworks

以下是一些常用的 Python GUI 开发框架,这些框架都有各自的特点和适用场景,选择合适的框架取决于你的项目需求和个人喜好;

Tkinter:是 Python 标准库中自带的 GUI 开发库,简单易用,可用于创建基本的窗口、按钮、文本框等组件;

PyQt:是基于 Qt 库的 Python 绑定,提供了丰富的 GUI 组件和功能,支持跨平台开发;

PySide:也是 Qt 库的 Python 绑定,与 PyQt 类似,提供了类似的功能和组件;

wxPython:基于 wxWidgets 库的 Python 绑定,可以创建跨平台的 GUI 应用程序,提供了丰富的组件和功能;

PyGTK:是 GTK+图形库的 Python 绑定,可用于创建 Linux 和 UNIX 系统上的 GUI 应用程序;

应用

场景 | 跨平台应用

Flutter

Flet

Kivy

  • https://github.com/kivy/kivy
  • 是一个开源的 Python GUI 开发框架,适用于创建移动应用程序和多点触摸界面,具有良好的跨平台性能;

参考

ChatGPT 4 / 介绍常用的 GUI 框架,支持 Linux Windows macOS 三个平台
Wikipedia/Widget toolkit
Wikipedia/List of widget toolkits
Setting gtk2 and gtk3 theme via config file