Golang-Gui 第三方库andlabs/ui的使用和效果zh - Go语言中文网
文章推薦指數: 80 %
代码奉上,引包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登录
忘记密码?
还不是会员现在注册
延伸文章資訊
- 1go 第三方GUI和编译andlabs/ui - CSDN博客
1.下载安装andlabs/ui、andlabs/libui. 项目终端中(输入命令): · 2.下载配置gcc环境:. 将下载的msys2-x86_64-版本号xxx.exe 安装在C:/ms...
- 2ui - pkg.dev
github.com/andlabs/ui ... ui: platform-native GUI library for Go ... Main initializes package ui,...
- 3andlabs/ui - Platform-native GUI library for Go. : r/golang - Reddit
if you run linux and are not afraid of running go tip (until go1.3 is released) running the wakeu...
- 4Golang NewVerticalBox Examples
Golang NewVerticalBox - 7 examples found. These are the top rated real world Golang examples of g...
- 5Golang NewArea示例
Golang NewArea - 已找到6个示例。这些是从开源项目中提取的最受好评的github.com/andlabs/ui.NewArea现实Golang示例。您可以评价示例,以帮助我们提高...