linux下go语言图形界面,使用go语言的Console UI

本文介绍了如何在Linux环境下使用Go语言的gocui库创建图形界面,特别是对于需要简单GUI的应用。由于Go官方未提供跨平台GUI,作者推荐了gocui,并分享了针对中文显示问题的补丁。通过一个简单的输入、显示程序实例展示了gocui的用法,包括设置视图、键盘绑定和主循环等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

go语言的GUI是一大短板,至今没有官方的跨平台GUI,第三方GUI库虽然有一些,例如QT/GTK/wxWidget的绑定,但是跨平台编译还是麻烦。如果我们只是需要一个简单的GUI,那么可以使用Console UI,今天我推荐一个很不错的Console UI:gocui,经本人试用,没有额外依赖关系,完全可以在linux平台编译win32程序。

如何安装

它的源代码地址(包引用路径)是:github.com/jroimartin/gocui。但是该程序的中文支持不好,显示中文字符时会漏掉一半文字,因此我给它打了一个补丁,因为该补丁还未被合并到主线中,请从:github.com/rocket049/gocui或者https://gitee.com/rocket049/gocui.git下载源代码,然后复制到目录:GOPATH/src/github.com/jroimartin/gocui。

打了补丁的程序和原程序有2个区别:

可以正确显示中文;

多了一个专门用于从编辑窗口读入中文的函数:(v *View) ReadEditor() []byte,该函数用于还原输入的中文语句。

如何使用

我就以一个简单的输入、显示程序做一个例子:

//Try cjk patch. example of view.ReadEditor

package main

import (

"fmt"

"log"

"github.com/jroimartin/gocui"

)

// 输出窗口

func viewOutput(g *gocui.Gui, x0, y0, x1, y1 int) error {

v, err := g.SetView("out", x0, y0, x1, y1)

if err != nil {

if err != gocui.ErrUnknownView {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值