这是我参与「第五届青训营」伴学笔记创作活动的第18天。
GUI
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。最典型的GUI就是windows。
图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
在字节的大项目中,暂未涉及到相关组件的说明。因为后端并不需要GUI,而用户需要的GUI早已在前端完成。但对于不会写前端的同学以及不涉及到前端的项目,需要用到图形化界面时,就必须学习相对应的GUI库了。
golang的GUI库
令人恶心憎恨的某科技大学某自动化院的C课设,就让同学们使用BorlandC的图形设计库,强迫啥也不懂的同学,从无到有直接盖高楼,设计出一款老师都不懂的应用出来。诚然这种形式的C课设有一定的正面作用,但也仅此而已。都什么年代了,还在用传统BC?学习更加新颖的东西,也许更有助于同学们的成长。
对于golang而言,并没有最权威的官方GUI组件。处于百花齐放的盛世,我们有必要了解一下适配的GUI组件有哪些。
- go-astilectron
- 基于election的拓展库,可以使用css、js、html来进行界面的设计和开发。
- go-sciter
- 基于sciter的绑定。sciter是非常流行的桌面客户端UI库,也是使用css、js、html来进行开发的,因此对于熟悉web开发的人上手并不难。
- gowd
- 使用HTML, CSS and NW.js.来进行发开发的扩展库,它也是基于web的UI库,它是基于Chromium and Node.的。
- gotk
- 使用最新版本的gtk3进行绑定,同时它需要 cairo, glib,等依赖进行开发。
- qt
- 作为目前非常流行的图形库,qt有着出色的用户体验,很多linux桌面系统就是使用qt开发的。
- ui
- 非常小的基于webview的扩展库,优点是小,缺点也是小。
- walk
- 只是基于windows的扩展库,对其它操作系统不支持。
- app
- 基于mac系统,对windows等系统不支持。
- fyne
- 材料设计的UI库,有着惊艳 的外观,界面很符合现代软件的风格。
博主目前正在学习fyne库,学完了再来bb。