Golang-Gui 第三方库andlabs/ui的使用和效果zh - Go语言中文网

文章推薦指數: 80 %
投票人數:10人

代码奉上,引包copy代码就直接可以运行起来,部分电脑可能需要下载gcc:package mainimport ( //"fmt" "github.com/andlabs/ui")func main() { err ... 分享 首页 文章 Golang-Gui第三方库andlabs/ui的使用和效果zh yanyuxuan ··6206次点击· · 开始浏览   这是一个创建于的文章,其中的信息可能已经有所发展或是发生改变。

github上有很多第三方GUI,本文以anblabs/ui库为例,支持跨平台,也比较容易上手,简单介绍下它的用法和最终展示效果。

代码奉上,引包copy代码就直接可以运行起来,部分电脑可能需要下载gcc: packagemain import(    "github.com/andlabs/ui" ) funcmain(){    err:=ui.Main(func(){       input:=ui.NewEntry()       input.SetText("thisisinputelement")       input.LibuiControl()       spinbox:=ui.NewSpinbox(50,150)       spinbox.SetValue(55)       slider:=ui.NewSlider(0,100)       slider.SetValue(10)       processbar:=ui.NewProgressBar()       processbar.SetValue(50)       combobox:=ui.NewCombobox()       combobox.Append("selectone")       combobox.Append("selecttwo")       combobox.Append("selectthree")       combobox.SetSelected(2)       checkbox1:=ui.NewCheckbox("GoLang")       checkbox1.SetChecked(true)       checkbox2:=ui.NewCheckbox("C++")       checkbox3:=ui.NewCheckbox("Python")       checkbox4:=ui.NewCheckbox("Other")       checkbox_div:=ui.NewHorizontalBox()       checkbox_div.Append(checkbox1,true)       checkbox_div.Append(checkbox2,true)       checkbox_div.Append(checkbox3,true)       checkbox_div.Append(checkbox4,true)       radio:=ui.NewRadioButtons()       radio.Append("GoLang")       radio.Append("C++")       radio.Append("Python")       radio.Append("Other")       checkbox_div.SetPadded(true)       Separator:=ui.NewHorizontalSeparator()       Separator_label_l:=ui.NewLabel("left")       Separator_label_r:=ui.NewLabel("right")       Separator_div:=ui.NewHorizontalBox()       Separator_div.Append(Separator_label_l,true)       Separator_div.Append(Separator,false)       Separator_div.Append(Separator_label_r,true)       Separator_div.SetPadded(true)       datetimepicker:=ui.NewDateTimePicker()       //-----------------Setasinglechildtoa newgroup.------------       container1:=ui.NewGroup("input(输入框)")       container1.SetChild(input)       container2:=ui.NewGroup("spinbox(自设值范围框,只能通过箭头控制值,不能手动输入)")       container2.SetChild(spinbox)       container3:=ui.NewGroup("slider(滑片)")       container3.SetChild(slider)       container4:=ui.NewGroup("processbar(进度条)")       container4.SetChild(processbar)       container5:=ui.NewGroup("checkbox(多选框)")       container5.SetChild(checkbox_div)       container6:=ui.NewGroup("radio(单选框)")       container6.SetChild(radio)       container7:=ui.NewGroup("combobox(下拉框)")       container7.SetChild(combobox)       container8:=ui.NewGroup("Separator(分隔符)")       container8.SetChild(Separator_div)       container9:=ui.NewGroup("datetimepicker(时间选取器)")       container9.SetChild(datetimepicker)       //------垂直排列的容器---------       div:=ui.NewVerticalBox()       //------水平排列的容器       boxs_1:=ui.NewHorizontalBox()       boxs_1.Append(container1,true)       boxs_1.Append(container2,true)       boxs_1.SetPadded(false)       boxs_2:=ui.NewHorizontalBox()       boxs_2.Append(container3,true)       boxs_2.Append(container4,true)       boxs_3:=ui.NewHorizontalBox()       boxs_3.Append(container5,true)       boxs_3.Append(container6,true)       boxs_4:=ui.NewHorizontalBox()       boxs_4.Append(container7,true)       boxs_4.Append(container8,true)       div.Append(boxs_1,true)       div.Append(boxs_2,true)       div.Append(boxs_3,true)       div.Append(boxs_4,true)       div.Append(container9,true)       div.SetPadded(false)       window:=ui.NewWindow("test111",500,500,true)       window.SetChild(div)       window.SetMargined(true)       window.OnClosing(func(*ui.Window)bool{          //ui.Quit()          returntrue       })       window.Show()    })    iferr!=nil{       panic(err)    } }   最终测试效果展示:   有疑问加站长微信联系(非本文作者) 入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s备注:入群;或加QQ群:701969077 6206次点击  加入收藏 微博 赞 收入我的专栏 上一篇:深入解析Go中Slice底层实现 下一篇:golang实现文件接收与上传 python github 选框 代码 2回复 | 直到2020-03-1311:33:10 暂无回复 添加一条新回复 (您需要登录后才能回复没有账号?) 编辑 预览 请尽量让自己的回复能够对别人有帮助 支持Markdown格式,**粗体**、~~删除线~~、`单行代码` 支持@本站用户;支持表情(输入:提示),见Emojicheatsheet 图片支持拖拽、截图粘贴等方式上传 提交 用户登录 记住登录状态 没有账号?注册 忘记密码? 或 GitHub登录 Gitea登录  今日阅读排行  一周阅读排行   关注我 扫码关注领全套学习资料 加入QQ群: 192706294(已满) 731990104(已满) 798786647(已满) 729884609(已满) 977810755(已满) 815126783(已满) 812540095(已满) 1006366459(已满) 701969077 加入微信群:liuxiaoyan-s,备注入群 也欢迎加入知识星球Go粉丝们(免费) × 给该专栏投稿 写篇新文章 每篇文章有总共有5次投稿机会 × 收入到我管理的专栏 新建专栏 github上有很多第三方GUI,本文以anblabs/ui库为例,支持跨平台,也比较容易上手,简单介绍下它的用法和最终展示效果。

代码奉上,引包copy代码就直接可以运行起来,部分电脑可能需要下载gcc: packagemain import(    "github.com/andlabs/ui" ) funcmain(){    err:=ui.Main(func(){       input:=ui.NewEntry()       input.SetText("thisisinputelement")       input.LibuiControl()       spinbox:=ui.NewSpinbox(50,150)       spinbox.SetValue(55)       slider:=ui.NewSlider(0,100)       slider.SetValue(10)       processbar:=ui.NewProgressBar()       processbar.SetValue(50)       combobox:=ui.NewCombobox()       combobox.Append("selectone")       combobox.Append("selecttwo")       combobox.Append("selectthree")       combobox.SetSelected(2)       checkbox1:=ui.NewCheckbox("GoLang")       checkbox1.SetChecked(true)       checkbox2:=ui.NewCheckbox("C++")       checkbox3:=ui.NewCheckbox("Python")       checkbox4:=ui.NewCheckbox("Other")       checkbox_div:=ui.NewHorizontalBox()       checkbox_div.Append(checkbox1,true)       checkbox_div.Append(checkbox2,true)       checkbox_div.Append(checkbox3,true)       checkbox_div.Append(checkbox4,true)       radio:=ui.NewRadioButtons()       radio.Append("GoLang")       radio.Append("C++")       radio.Append("Python")       radio.Append("Other")       checkbox_div.SetPadded(true)       Separator:=ui.NewHorizontalSeparator()       Separator_label_l:=ui.NewLabel("left")       Separator_label_r:=ui.NewLabel("right")       Separator_div:=ui.NewHorizontalBox()       Separator_div.Append(Separator_label_l,true)       Separator_div.Append(Separator,false)       Separator_div.Append(Separator_label_r,true)       Separator_div.SetPadded(true)       datetimepicker:=ui.NewDateTimePicker()       //-----------------Setasinglechildtoa newgroup.------------       container1:=ui.NewGroup("input(输入框)")       container1.SetChild(input)       container2:=ui.NewGroup("spinbox(自设值范围框,只能通过箭头控制值,不能手动输入)")       container2.SetChild(spinbox)       container3:=ui.NewGroup("slider(滑片)")       container3.SetChild(slider)       container4:=ui.NewGroup("processbar(进度条)")       container4.SetChild(processbar)       container5:=ui.NewGroup("checkbox(多选框)")       container5.SetChild(checkbox_div)       container6:=ui.NewGroup("radio(单选框)")       container6.SetChild(radio)       container7:=ui.NewGroup("combobox(下拉框)")       container7.SetChild(combobox)       container8:=ui.NewGroup("Separator(分隔符)")       container8.SetChild(Separator_div)       container9:=ui.NewGroup("datetimepicker(时间选取器)")       container9.SetChild(datetimepicker)       //------垂直排列的容器---------       div:=ui.NewVerticalBox()       //------水平排列的容器       boxs_1:=ui.NewHorizontalBox()       boxs_1.Append(container1,true)       boxs_1.Append(container2,true)       boxs_1.SetPadded(false)       boxs_2:=ui.NewHorizontalBox()       boxs_2.Append(container3,true)       boxs_2.Append(container4,true)       boxs_3:=ui.NewHorizontalBox()       boxs_3.Append(container5,true)       boxs_3.Append(container6,true)       boxs_4:=ui.NewHorizontalBox()       boxs_4.Append(container7,true)       boxs_4.Append(container8,true)       div.Append(boxs_1,true)       div.Append(boxs_2,true)       div.Append(boxs_3,true)       div.Append(boxs_4,true)       div.Append(container9,true)       div.SetPadded(false)       window:=ui.NewWindow("test111",500,500,true)       window.SetChild(div)       window.SetMargined(true)       window.OnClosing(func(*ui.Window)bool{          //ui.Quit()          returntrue       })       window.Show()    })    iferr!=nil{       panic(err)    } }   最终测试效果展示:   X 登录和大家一起探讨吧 用户名 密码 记住登录状态 登录 GitHub登录 忘记密码? 还不是会员现在注册



請為這篇文章評分?