Golang-Gui 第三方庫andlabs/ui的使用和效果zh

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

github上有很多第三方GUI,本文以anblabs/ui庫為例,支援跨平台,也比較容易上手,簡單介紹下它的用法和最終展示效果。

代碼奉上,引包copy代碼就直接可以運行起來,部分電腦可能需要下載gcc:

package mainimport (    "github.com/andlabs/ui")func main() {    err := ui.Main(func() {        input := ui.NewEntry()        input.SetText("this is input element")        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("select one")        combobox.Append("select two")        combobox.Append("select three")        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()        //-----------------Set a single child to a  new group.------------        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()            return true        })        window.Show()    })    if err != nil {        panic(err)    }}


 

最終測試效果展示:

 

289 次點擊  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.