跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • golang ui 怎么把某个包里面内容返回到 UI 界面呢?
未分類
19 5 月 2020

golang ui 怎么把某个包里面内容返回到 UI 界面呢?

golang ui 怎么把某个包里面内容返回到 UI 界面呢?

資深大佬 : AmrtaShiva 0

  • 如题 第一次用 Go 写 GUI .第三方库. https://github.com/andlabs/ui
  • 项目结构是两个模块
mod A  核心代码以 cli 为主 mod B   GUI 部分  

现在需要让 mod B 的函数调用 mod   A 函数中 fmt.Printf()部分.把 fmt.Printf()的显示到 GUI 界面. 这方面该怎么让打印出来的值返回呢?谢谢.

主函数代码

 func main() {  ui.Main(w) }  //主窗口 func w() {   //生成主窗口  win := ui.NewWindow("农历择吉", 800, 600, true)  //添加鼠标点击之后关闭窗口  win.OnClosing(func(*ui.Window) bool {   ui.Quit()   return true  })   //添加"退出"菜单时执行的函数功能  ui.OnShouldQuit(func() bool {   win.Destroy()   return true  })   //设置控件  tab := ui.NewTab()  Info(tab, win)    //历法信息  ListDay(tab, win) //农历月历表  JiQi24(tab, win)  //24 节气   About(tab, win)   //软件信息   hbox := ui.NewHorizontalBox() //创建水平框架  hbox.SetPadded(true)   //显示  win.Show()  }  

主函数 24 节气信息

 //节气信息 func JiQi24(tab *ui.Tab, win *ui.Window) {  win.SetChild(tab)  win.SetMargined(true)  tab.Append("24 节气", TabJiQi24())  tab.SetMargined(2, true) //数字为显示顺序 }  //显示 24 节气标签 func TabJiQi24() ui.Control {  hbox := ui.NewHorizontalBox()  hbox.SetPadded(true)   vbox := ui.NewVerticalBox()  vbox.SetPadded(true)   jq24s := jieqiInfo()  fmt.Printf("%sn", jq24s)  lab := ui.NewLabel(``)  lab.SetText(jq24s)  vbox.Append(lab, true)   hbox.Append(vbox, false)   return hbox }  

主函数要显示内容

现在这里的内容是能显示出来的不过不是需要的内容

 func jieqiInfo() string {   attrstr = ui.NewAttributedString("这里传入 stdout 出来的内容")   appendWithAttributes("气1", ui.TextSize(18))  attrstr.AppendUnattributed("n")  appendWithAttributes("节气2", ui.TextSize(18))  attrstr.AppendUnattributed("n")  appendWithAttributes("节气3", ui.TextSize(18))  attrstr.AppendUnattributed("n")   return attrstr.String() //返回获取的字符串内容  } 

cli 部分要显示到 GUI 的内容如下

希望把下面 fmt.Printf(“…..”)内容显示到 func jieqiInfo() 对应的 appendWithAttributes(“节气2”, ui.TextSize(18))中,替换里面的"节气 2 " 同时不想在 GUI 界面的函数中传参数.....

   var jmc string   for i := 1; i < 28; i++ {    t := all[i]    y := t.Year()    m := int(t.Month())    d := t.Day()    //h := t.Hour()    if i > 24 {     jmc = julian.JqHs[i-23]     //打印年份节气     fmt.Printf("阳历日期: %d 年%d 月%d 日:%sn", y, m, d, jmc)    } else {     //打印年份节气     jmc = julian.JqHs[i+1] //节气名称     fmt.Printf("阳历日期: %d 年%d 月%d 日:%sn", y, m, d, jmc)    }   }  } 

大佬有話說 (5)

  • 資深大佬 : labulaka521

    这两年没更新还能用吗,作者估计都弃坑了,推荐一个 gioui

  • 主 資深大佬 : AmrtaShiva

    @labulaka521 #1 那个不好写啊

  • 資深大佬 : labulaka521

    @AmrtaShiva 看着还行吧,就是代码写的多点,前几天问作者要了个文档 https://gist.github.com/egonelbre/f458f857d95d8330cbc1fb05d638ef5c

  • 主 資深大佬 : AmrtaShiva

    @labulaka521 #3 谢谢。我先试一下现在这个。框架都写好了。就差里面内容了 https://b23.tv/1IrhXR

  • 主 資深大佬 : AmrtaShiva

    @labulaka521 #3 这个库支持汉字输入吗?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具