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

2020-05-17 14:46:37 +08:00
 AmrtaShiva
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("%s\n", 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 日:%s\n", y, m, d, jmc)
			} else {
				//打印年份节气
				jmc = julian.JqHs[i+1] //节气名称
				fmt.Printf("阳历日期: %d 年%d 月%d 日:%s\n", y, m, d, jmc)
			}
		}
	}
867 次点击
所在节点    问与答
5 条回复
labulaka521
2020-05-18 07:47:57 +08:00
这两年没更新还能用吗,作者估计都弃坑了,推荐一个 gioui
AmrtaShiva
2020-05-18 08:49:29 +08:00
@labulaka521 #1 那个不好写啊
labulaka521
2020-05-18 09:28:04 +08:00
AmrtaShiva
2020-05-18 09:38:09 +08:00
@labulaka521 #3 谢谢。我先试一下现在这个。框架都写好了。就差里面内容了 https://b23.tv/1IrhXR
AmrtaShiva
2020-05-19 09:53:22 +08:00
@labulaka521 #3 这个库支持汉字输入吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/672567

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX