天天看點

Go版GTK:常用控件—行編輯

行編輯,隻允許輸入一行内容的控件,如密碼輸入框。

Go版GTK:常用控件—行編輯

glade設計如下:

Go版GTK:常用控件—行編輯

常用信号:

信号辨別 觸發條件
“activate” 行編輯區内部按Enter鍵時觸發

示例代碼:

package main

import (
    "fmt"
    "os"

    "github.com/mattn/go-gtk/gtk"
)

func main() {
    gtk.Init(&os.Args)

    builder := gtk.NewBuilder()       //建立builder
    builder.AddFromFile("test.glade") //讀取glade檔案

    // 擷取視窗控件指針,注意"window1"要和glade裡的标志名稱比對
    window := gtk.WindowFromObject(builder.GetObject("window1"))
    window.SetSizeRequest(, ) //設定視窗大小

    //擷取entry控件
    entry := gtk.EntryFromObject(builder.GetObject("entry1"))

    entry.SetText("123456")                       //設定内容
    fmt.Println("entry text = ", entry.GetText()) //擷取内容
    //entry.SetVisibility(false)                  //設定不可見字元,即密碼模式
    //entry.SetEditable(false)                    //隻讀,不可編輯
    entry.ModifyFontSize() //修改字型大小

    //信号處理,當使用者在文本輸入控件内部按Enter鍵時引發activate信号
    entry.Connect("activate", func() {
        fmt.Println("entry text = ", entry.GetText()) //擷取内容
    })

    //按視窗關閉按鈕,自動觸發"destroy"信号
    window.Connect("destroy", gtk.MainQuit)

    window.ShowAll()

    gtk.Main()
}
           

程式運作效果:

Go版GTK:常用控件—行編輯
Go版GTK:常用控件—行編輯