srybadname 2019-12-17 15:41 采纳率: 0%
浏览 1042
已结题

golang中使用walk展示二维码图片

图片说明

**我的需求是点击生成二维码 在下面展示二维码。

部分代码如下,初学golang 请教各位大佬


type MyMainWindow struct {
    *walk.MainWindow
    hcName   *walk.Label
    userIdName   *walk.Label
    startTime *walk.DateEdit
    endTime *walk.DateEdit
    hc, userId *walk.LineEdit
    imageView *walk.ImageView
    imageComposite *walk.Composite
    qrCount int
}

func (mw *MyMainWindow) ShowQRcode() {
    if mw.imageComposite != nil {
        mw.imageComposite.Dispose()
    }
    mw.getQRcode()
    widgets := []Widget{}
    for i:=1;i<=mw.qrCount;i++ {
        bitmap, err := walk.NewBitmapFromFile("qrcode/qr_"+strconv.Itoa(i)+".jpg")
        log.Println("qrcode/qr_"+strconv.Itoa(i)+".jpg")
        if err != nil {
            walk.MsgBox(mw, mw.Title(), err.Error(), walk.MsgBoxIconError)
            break
        }
        widget := ImageView{
            Image: bitmap,
            Mode:  ImageViewModeZoom,
        }
        widgets = append(widgets, widget)
    }
    imageComposite := Composite{
        AssignTo: &mw.imageComposite,
        Layout:   HBox{},
        Children: widgets,
    }
    if err := imageComposite.Create(NewBuilder(mw)); err != nil {
        log.Println(err)
    }
}

func openWindow(){
    mw := &MyMainWindow{}
    _, _ = MainWindow{
        Title:   "梅清打印量上报",
        MinSize: Size{600, 400},
        Size:Size{1200,800},
        Layout:  VBox{MarginsZero: true},
        Children: []Widget{
            Composite{
                Layout:HBox{},
                Children: []Widget{
                    Label{AssignTo: &mw.hcName,Text: "医院编号"},
                    LineEdit{AssignTo: &mw.hc,},
                    Label{AssignTo: &mw.userIdName,Text: "工程师编号"},
                    LineEdit{AssignTo: &mw.userId,},
                    DateEdit{AssignTo:&mw.startTime, Format:"yyyy-MM-dd",},
                    DateEdit{AssignTo:&mw.endTime, Format:"yyyy-MM-dd",},
                    PushButton{
                        Text: "生成二维码",
                        OnClicked: func(){
                            if len(mw.hc.Text()) == 0 {
                                walk.MsgBox(mw, mw.Title(), "请输入医院编号", walk.MsgBoxIconError)
                                log.Println("请输入医院编号")
                                return
                            }
                            if len(mw.userId.Text()) == 0 {
                                walk.MsgBox(mw, mw.Title(), "请输入工程师编号", walk.MsgBoxIconError)
                                log.Println("请输入工程师编号")
                                return
                            }
                            mw.ShowQRcode()
                        },
                    },
                },
            },
            Composite{
                AssignTo:&mw.imageComposite,
                Layout:HBox{},
            },
        },
    }.Run()
}

这是报错信息
图片说明

  • 写回答

2条回答 默认 最新

  • dabocaiqq 2019-12-18 00:16
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料