很久没发博客了,现在在这里说明一下私信的问题,我已经很久没做任何js逆向了,想好好学一下别的东西,所以统一回复一下各位,别再问我Akamai和别的事情了,我实在不知道怎么回复,在这里对一些没给答复的兄弟道个歉。

这篇是一篇关于gio的学习记录,gio的学习对我来说无疑是困难的,没有QT那种拖拉组件的功能,只能通过不断地看一些源码和example来进行了解,当然啊,我觉得难不排除是因为我经验不足学习能力弱的原因。

研究了好些日子,虽然中间因为摆烂和学车断断续续地,但是也成功自己写出了第一个我想要的login in的页面,相关联的组件暂时还没有赋予一些功能,就单单一个button就困扰了我老久,不知道为什么我的就是没有点击的效果,不过现在我已经解决了,是因为变量局部有效性的问题,经过不断修改测试,实际上只需要挂一个全局变量就行了,下面放一下简易版的页面图和代码。

package mainimport ("gioui.org/app""gioui.org/font/gofont""gioui.org/io/system""gioui.org/layout""gioui.org/op""gioui.org/unit""gioui.org/widget""gioui.org/widget/material""image/color""log""os"
)func main() {go func() {w := app.NewWindow(app.Title("Login_in"),app.Size(unit.Dp(400),unit.Dp(200)))if err := loop(w); err != nil{log.Println(err)os.Exit(1)}os.Exit(0)}()app.Main()}func loop(w *app.Window)  error{th := material.NewTheme(gofont.Collection())var ops op.Opsfor{select {case e:= <-w.Events():switch e := e.(type) {case system.DestroyEvent:return e.Errcase system.FrameEvent:gtx := layout.NewContext(&ops, e)LoginWindow(gtx, th)e.Frame(gtx.Ops)}}}return nil
}type Information struct {AccountNum FeildPassport Feild}type Feild struct {widget.Editor}var(postBtn            = new(widget.Clickable)editor     = new(widget.Editor)list = &widget.List{List: layout.List{Axis: layout.Vertical,},}info = Information{})func LoginWindow(gtx layout.Context, th *material.Theme) layout.Dimensions  {spacer := layout.Rigid(layout.Spacer{Width: unit.Dp(10)}.Layout)widgets := []layout.Widget{func(gtx layout.Context) layout.Dimensions {return layout.Flex{}.Layout(gtx,layout.Rigid(material.Body1(th, "Account:").Layout),spacer,layout.Flexed(1, func(gtx layout.Context) layout.Dimensions {return info.AccountNum.Layout(th, gtx)}))},func(gtx layout.Context) layout.Dimensions {return layout.Flex{}.Layout(gtx,layout.Rigid(material.Body1(th, "Passport:").Layout),spacer,layout.Flexed(1, func(gtx layout.Context) layout.Dimensions {return info.Passport.Layout(th, gtx)}))},func(gtx layout.Context) layout.Dimensions {return layout.Flex{}.Layout(gtx,layout.Rigid(func(gtx layout.Context) layout.Dimensions {dp := unit.Dpmargins := layout.Inset{Left: dp(150),}return margins.Layout(gtx, func(gtx layout.Context) layout.Dimensions {btn := material.Button(th, postBtn, "Post")return btn.Layout(gtx)})}),)},}return material.List(th, list).Layout(gtx, len(widgets), func(gtx layout.Context, index int) layout.Dimensions {return layout.UniformInset(unit.Dp(16)).Layout(gtx, widgets[index])})}func (ed *Feild) Layout(th *material.Theme, gtx layout.Context) layout.Dimensions{borderWidth := float32(0.5)borderColor := color.NRGBA{A: 107}switch {case ed.Editor.Focused():borderColor = th.Palette.ContrastBgborderWidth = 2}return widget.Border{Color: borderColor,CornerRadius: unit.Dp(4),Width: unit.Dp(borderWidth),}.Layout(gtx, func(gtx layout.Context) layout.Dimensions {return layout.UniformInset(unit.Dp(4)).Layout(gtx, material.Editor(th, &ed.Editor, "").Layout)})}

注释我就没写了,简单的记录一下子。

《golang日记》关于gio的学习一相关推荐

  1. Python自学日记28——如何选择学习资料

    Python自学日记28--如何选择学习资料 这两天把数据结构和算法当做定期学习任务转向web开发阶段学习,前天开始学习Django,发现资料过时,很多Django代码在新版本里总是报错,刚开始还坚持 ...

  2. 《golang日记》关于gio的学习二

    我一开始一直在研究单窗口的布局规范和方式,后面我慢慢意识到了一件事情,多窗口怎么互相关联呢,任务之间的数据该怎么传输呢,于是乎我在四月份新发表的multiple windows的example找到了答 ...

  3. golang和经济学相关资料学习,还不错,果然B站是个学习的好地方。

    golang 相关学习资料: https://www.bilibili.com/video/BV1ZJ411W7jG?p=1 最新Go语言急速入门视频教程(七米出品) golang grpc 相关技术 ...

  4. golang net/http库的学习

    net/http 是 Golang 标准库中用来构建 HTTP 服务器和客户端的包,它提供了很多功能强大的方法和接口,可以让您方便地构建和处理 HTTP 请求和响应.下面是一些学习 net/http ...

  5. python考研参考书目_Python自学日记28——如何选择学习资料

    这两天把数据结构和算法当做定期学习任务转向web开发阶段学习,前天开始学习Django,发现资料过时,很多Django代码在新版本里总是报错,刚开始还坚持了一段时间,把最初的步骤都通过查别人的调整代码 ...

  6. golang源码安装和学习环境搭建

    1).源代码安装go语言      Go的工具链采用C语言编写,要构建它,你需要安装一个C编译器;           sudo apt-get install build-essential     ...

  7. golang 线程 Java线程_Golang 学习笔记(06)—— 多线程

    Golang 介绍 线程是cpu调度的最小单位,只有不同的线程才能同时在多核cpu上同时运行.但线程太占资源,线程调度开销大.go中的goroutine是一个轻量级的线程,执行时只需要4-5k的内存, ...

  8. 【转载】新韭菜日记39--20190318 ----最近反思 学习分析财务

    1 看来券商这个已经有点危险了,券商有专职坐庄,算了 2 准备持有几个长线的吧,平安,巨人 3 观察一个被低估的,业绩好的长线持有,再分析分析 别人推荐的万华化学,暂时看也有点高位了,和比亚迪,格力, ...

  9. golang中的gin框架学习

    gin框架中常用方法 gin.H{ } 有这么一行c.JSON(200, gin.H{"message": "use get method"}) 这其中有一个g ...

最新文章

  1. CSP 2019-09-1 小明种苹果 Python实现+详解
  2. Redis 高级主题之布隆过滤器(BloomFilter)
  3. 产品力挺PHP完爆Java
  4. jdb java_JDB - 介绍
  5. 超强实时人像抠图算法开源,随心所欲背景替换!
  6. python开发安卓程序-用python开发android应用(1)
  7. windows不能访问linux服务器,window的vnc客户端无法访问Linux服务端的问题之一
  8. 网页禁用鼠标右键和复制功能兼容方式
  9. linux 二级域名设置
  10. class参数传入 python_小白学 Python 爬虫(20):Xpath 进阶
  11. 说说说vue.js中的组
  12. c 数组上限_高级I/O复用技术:Epoll的使用及一个完整的C实例含代码
  13. ngnix有版本要求吗_新版本探秘:比赛/活动等其他系统的新增与优化~
  14. 西北工业大学计算机专业课考什么,西北工业大学西工大计算机考研经验
  15. 解决 SSL握手失败问题
  16. 为什么学计算机容易秃顶,为什么程序员更容易脱发?知道答案惊呆了!
  17. 谷粒学院 Day12.登录页面模式、整合JWT、整合QQ邮箱、用户登录注册接口【后端】、用户登录注册【前端】
  18. springboot+jpa+mysql Springboot+jpa+jdbc+sqlserver 使用时遇到的一系列的问题
  19. 迄今为止最全的技术文档汇总,编程语言,操作系统,数据结构,设计模式等赶紧收藏起来。
  20. 爬虫之websocket数据爬取

热门文章

  1. 520有哪些值得送女友的无线蓝牙耳机?主动降噪蓝牙耳机推荐
  2. 减肥成功就靠六西格玛|优思学院
  3. GIS设备gim模型要求
  4. js 伪造referer_JavaScript 伪造 Referer 来路方法
  5. excel打不开是什么原因_iTunes安装后打不开是什么原因
  6. 怎么定位门面位置_如何选择商铺位置?创业初期必看
  7. 你给翻译翻译,什么叫JS黑话
  8. 在小米mix黑鲨系列手机上,Shader效果bug
  9. 如何关闭苹果手机自动扣费_杭州网友喊话苹果:卸载了还能自动扣费?免密支付背后风险不少,这个功能千万记得选...
  10. 离散数学复习---第十七章 平面图【概念版】