第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法將 GUI 變量保持為全局變量

無法將 GUI 變量保持為全局變量

Go
慕哥9229398 2023-07-10 17:38:15
我發(fā)現(xiàn)以下代碼有效:// modified from: https://github.com/andlabs/ui/wiki/Getting-Startedpackage mainimport ("github.com/andlabs/ui")func makewinfn() {    var name = ui.NewEntry()    var button = ui.NewButton("Greet")    var greeting = ui.NewLabel("")    box := ui.NewVerticalBox()    box.Append(ui.NewLabel("Enter your name:"), false)    box.Append(name, false)    box.Append(button, false)    box.Append(greeting, false)    mywindow := ui.NewWindow("MyTitle", 200, 100, false)    mywindow.SetChild(box)    button.OnClicked( func (*ui.Button) {greeting.SetText("Hello, " + name.Text() + "!") } )    mywindow.OnClosing( func (*ui.Window) bool { ui.Quit(); return true } )    mywindow.Show()}func main() {    ui.Main(makewinfn)}但是,如果我嘗試使用全局變量:package mainimport ("github.com/andlabs/ui")// keeping following as global variables: var name = ui.NewEntry()var button = ui.NewButton("Greet")var greeting = ui.NewLabel("")func makewinfn() {    box := ui.NewVerticalBox()    box.Append(ui.NewLabel("Enter your name:"), false)    box.Append(name, false)    box.Append(button, false)    box.Append(greeting, false)    mywindow := ui.NewWindow("MyTitle", 200, 100, false)    mywindow.SetChild(box)    button.OnClicked( func (*ui.Button) {greeting.SetText("Hello, " + name.Text() + "!") } )    mywindow.OnClosing( func (*ui.Window) bool { ui.Quit(); return true } )    mywindow.Show()}func main() {    ui.Main(makewinfn)}這段帶有全局變量的代碼可以正常編譯,但在運行時會產生以下錯誤:fatal error: unexpected signal during runtime execution[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7fecb2712e19]如何將 GUI 組件保留為全局變量?我將它們保留為全局,以便我可以從其他功能訪問它們。
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

當您在頂層(包塊)使用變量時,它們會在開始執(zhí)行之前初始化main()。


并且您從github.com/andlabs/ui包中調用代碼,但它ui.Main()尚未被調用,因此ui它所依賴的包和資源可能尚未初始化。


僅聲明變量,但尚未為其賦值,將其留給函數(shù)makewinfn():


var name *ui.Entry

var button *ui.Button

var greeting *ui.Label


func makewinfn() {

    name = ui.NewEntry()

    button = ui.NewButton("Greet")

    greeting = ui.NewLabel("")


    box := ui.NewVerticalBox()

    // ...

}


查看完整回答
反對 回復 2023-07-10
  • 1 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號