美文网首页
go walk 消息窗

go walk 消息窗

作者: 路人甲Boger | 来源:发表于2020-05-08 16:31 被阅读0次
    walk.MsgBox
    1. 消息窗
    func MsgBox(owner Form, title, message string, style MsgBoxStyle) int
    
    • owner Form 父窗体句柄

    • title 消息窗的标题

    • message 消息内容

    • style 消息窗的样式

    walk.MsgBox(
            mw,
            "Title",
            "Message",
            walk.MsgBoxServiceNotification)
    

    参数style 取值比较多可参照 walk 包下面的 messagebox.go 中定义的

    1. 消息按钮事件的触发

      walk.MsgBox 方法的返回值是int ,这个返回值就是点击消息窗按钮时返回的,返回用户点击的具体的按钮的Id,可以通过判断这个来触发点击回调。具体实现如下,部分关键代码:

       OnClicked: func() {
                cmd=walk.MsgBox(
                    mw,
                    "Title",
                    "Message",
                    walk.MsgBoxYesNoCancel)
                switch cmd {
                case walk.DlgCmdYes:
                    le.SetText("click 是")
                case walk.DlgCmdCancel:
                    le.SetText("click 取消")
                case walk.DlgCmdNo:
                    le.SetText("click 否")
                }
            },
    

    完整代码

    package main
    
    import (
        "fmt"
        "github.com/lxn/walk"
        . "github.com/lxn/walk/declarative"
    )
    
    func main()  {
        var(
            pb PushButton
            _pb *walk.PushButton
            mw *walk.MainWindow
            le *walk.LineEdit
            cmd int
        )
        pb=PushButton{
            AssignTo:&_pb,
            Text:"btn",
            MaxSize:Size{150,30},
            OnClicked: func() {
                cmd=walk.MsgBox(
                    mw,
                    "Title",
                    "Message",
                    walk.MsgBoxYesNoCancel)
                switch cmd {
                case walk.DlgCmdYes:
                    le.SetText("click 是")
                case walk.DlgCmdCancel:
                    le.SetText("click 取消")
                case walk.DlgCmdNo:
                    le.SetText("click 否")
                }
            },
        }
    
        if _,err:=(MainWindow{
            Title:"layout_flow_demo",
            AssignTo:&mw,
            Layout:VBox{MarginsZero:true},
            Size:Size{300,50},
    
            Children: []Widget{
                HSplitter{
                    Children: []Widget{
                        LineEdit{
                            AssignTo:&le,
                            MaxSize:Size{150,30},
                        },
                        pb,
                        HSpacer{},
                    },
                },
                VSpacer{},
            },
        }.Run());err!=nil{
            fmt.Println(err)
        }
    }
    
    

    相关文章

      网友评论

          本文标题:go walk 消息窗

          本文链接:https://www.haomeiwen.com/subject/yzofnhtx.html