func (w *Dialog) init(owner walk.RootWidget) (err error) { if w.Dialog, err = walk.NewDialog(owner); err != nil { return err } succeeded := false defer func() { if !succeeded { w.Dispose() } }() var font *walk.Font if font == nil { font = nil } w.SetName("Dialog") if err := w.SetClientSize(walk.Size{400, 300}); err != nil { return err } if err := w.SetTitle(`Dialog`); err != nil { return err } // Tab order succeeded = true return nil }
func (d Dialog) Create(owner walk.RootWidget) error { w, err := walk.NewDialog(owner) if err != nil { return err } tlwi := topLevelWindowInfo{ Name: d.Name, Disabled: d.Disabled, Hidden: d.Hidden, Font: d.Font, MinSize: d.MinSize, MaxSize: d.MaxSize, ContextMenuActions: d.ContextMenuActions, DataBinder: d.DataBinder, Layout: d.Layout, Children: d.Children, } return InitWidget(tlwi, w, func() error { if err := w.SetTitle(d.Title); err != nil { return err } if err := w.SetSize(d.Size.toW()); err != nil { return err } if d.DefaultButton != nil { if err := w.SetDefaultButton(*d.DefaultButton); err != nil { return err } } if d.CancelButton != nil { if err := w.SetCancelButton(*d.CancelButton); err != nil { return err } } if d.AssignTo != nil { *d.AssignTo = w } return nil }) }
func (d Dialog) Create(parent walk.Container) error { var owner walk.RootWidget if o, ok := parent.(walk.RootWidget); ok { owner = o } w, err := walk.NewDialog(owner) if err != nil { return err } return InitWidget(d, w, func() error { if err := w.SetTitle(d.Title); err != nil { return err } if err := w.SetSize(d.Size.toW()); err != nil { return err } if d.DefaultButton != nil { if err := w.SetDefaultButton(*d.DefaultButton); err != nil { return err } } if d.CancelButton != nil { if err := w.SetCancelButton(*d.CancelButton); err != nil { return err } } if d.AssignTo != nil { *d.AssignTo = w } return nil }) }
func (d Dialog) Create(owner walk.Form) error { w, err := walk.NewDialog(owner) if err != nil { return err } tlwi := topLevelWindowInfo{ Name: d.Name, Font: d.Font, ToolTipText: "", MinSize: d.MinSize, MaxSize: d.MaxSize, ContextMenuItems: d.ContextMenuItems, DataBinder: d.DataBinder, Layout: d.Layout, Children: d.Children, OnKeyDown: d.OnKeyDown, OnKeyPress: d.OnKeyPress, OnKeyUp: d.OnKeyUp, OnMouseDown: d.OnMouseDown, OnMouseMove: d.OnMouseMove, OnMouseUp: d.OnMouseUp, OnSizeChanged: d.OnSizeChanged, } var db *walk.DataBinder if d.DataBinder.AssignTo == nil { d.DataBinder.AssignTo = &db } builder := NewBuilder(nil) w.SetSuspended(true) builder.Defer(func() error { w.SetSuspended(false) return nil }) return builder.InitWidget(tlwi, w, func() error { if err := w.SetTitle(d.Title); err != nil { return err } if err := w.SetSize(d.Size.toW()); err != nil { return err } if d.DefaultButton != nil { if err := w.SetDefaultButton(*d.DefaultButton); err != nil { return err } if db := *d.DataBinder.AssignTo; db != nil { (*d.DefaultButton).SetEnabled(db.CanSubmit()) db.CanSubmitChanged().Attach(func() { (*d.DefaultButton).SetEnabled(db.CanSubmit()) }) } } if d.CancelButton != nil { if err := w.SetCancelButton(*d.CancelButton); err != nil { return err } } if d.AssignTo != nil { *d.AssignTo = w } return nil }) }
func (w *MyDialog) init(owner walk.RootWidget) (err error) { if w.Dialog, err = walk.NewDialog(owner); err != nil { return err } succeeded := false defer func() { if !succeeded { w.Dispose() } }() var font *walk.Font if font == nil { font = nil } w.SetName("Dialog") if err := w.SetClientSize(walk.Size{598, 300}); err != nil { return err } if err := w.SetTitle(`Dialog`); err != nil { return err } // noProgressBtn if w.ui.noProgressBtn, err = walk.NewPushButton(w); err != nil { return err } w.ui.noProgressBtn.SetName("noProgressBtn") if err := w.ui.noProgressBtn.SetBounds(walk.Rectangle{40, 60, 161, 23}); err != nil { return err } if err := w.ui.noProgressBtn.SetText(`NoProgress`); err != nil { return err } if err := w.ui.noProgressBtn.SetMinMaxSize(walk.Size{0, 0}, walk.Size{161, 16777215}); err != nil { return err } // indeterminateBtn if w.ui.indeterminateBtn, err = walk.NewPushButton(w); err != nil { return err } w.ui.indeterminateBtn.SetName("indeterminateBtn") if err := w.ui.indeterminateBtn.SetBounds(walk.Rectangle{40, 90, 161, 23}); err != nil { return err } if err := w.ui.indeterminateBtn.SetText(`Indeterminate`); err != nil { return err } if err := w.ui.indeterminateBtn.SetMinMaxSize(walk.Size{0, 0}, walk.Size{161, 16777215}); err != nil { return err } // normalBtn if w.ui.normalBtn, err = walk.NewPushButton(w); err != nil { return err } w.ui.normalBtn.SetName("normalBtn") if err := w.ui.normalBtn.SetBounds(walk.Rectangle{40, 120, 161, 23}); err != nil { return err } if err := w.ui.normalBtn.SetText(`Normal`); err != nil { return err } if err := w.ui.normalBtn.SetMinMaxSize(walk.Size{0, 0}, walk.Size{161, 16777215}); err != nil { return err } // errBtn if w.ui.errBtn, err = walk.NewPushButton(w); err != nil { return err } w.ui.errBtn.SetName("errBtn") if err := w.ui.errBtn.SetBounds(walk.Rectangle{40, 150, 161, 23}); err != nil { return err } if err := w.ui.errBtn.SetText(`Error`); err != nil { return err } // pausedBtn if w.ui.pausedBtn, err = walk.NewPushButton(w); err != nil { return err } w.ui.pausedBtn.SetName("pausedBtn") if err := w.ui.pausedBtn.SetBounds(walk.Rectangle{40, 180, 161, 23}); err != nil { return err } if err := w.ui.pausedBtn.SetText(`Paused`); err != nil { return err } // startBtn if w.ui.startBtn, err = walk.NewPushButton(w); err != nil { return err } w.ui.startBtn.SetName("startBtn") if err := w.ui.startBtn.SetBounds(walk.Rectangle{290, 180, 75, 23}); err != nil { return err } if err := w.ui.startBtn.SetText(`START`); err != nil { return err } // Tab order succeeded = true return nil }
func (mw *MyDialog) init(owner walk.Form) (err error) { // 设置最小化 mw.SetMinimizeBox(true) // 禁用最大化 mw.SetMaximizeBox(false) // 设置窗口固定 mw.SetFixedSize(true) // // 设置窗口前置 // mw.SetWindowPos(true) mw.Dialog, err = walk.NewDialog(owner) mw.checkError(err) succeeded := false defer func() { if !succeeded { mw.Dispose() } }() // 设置主窗体大小 err = mw.SetClientSize(walk.Size{700, 560}) mw.checkError(err) // 设置主窗体标题 err = mw.SetTitle("iMan-打包工具 V【" + _VERSION_ + "】") mw.checkError(err) // 设置 mw.ui.SettingMenu, _ = walk.NewMenu() mw.ui.SettingAction = walk.NewMenuAction(mw.ui.SettingMenu) mw.ui.SettingAction.SetText("设置") mw.ui.ServerAction = walk.NewAction() mw.ui.ServerAction.SetText("服务器") mw.ui.SettingMenu.Actions().Add(mw.ui.ServerAction) // 帮助 mw.ui.HelpMenu, _ = walk.NewMenu() mw.ui.HelpAction = walk.NewMenuAction(mw.ui.HelpMenu) mw.ui.HelpAction.SetText("帮助") mw.ui.AboutAction = walk.NewAction() mw.ui.AboutAction.SetText("关于") mw.ui.HelpMenu.Actions().Add(mw.ui.AboutAction) // 菜单配置 mw.Menu().Actions().Add(mw.ui.SettingAction) mw.Menu().Actions().Add(mw.ui.HelpAction) // 设置字体和图标 fountTitle, _ := walk.NewFont("幼圆", 10, walk.FontBold) otherFont, _ := walk.NewFont("幼圆", 10, 0) // 开始打包 mw.ui.StartPackingBtn, err = walk.NewPushButton(mw) mw.checkError(err) mw.ui.StartPackingBtn.SetText("开始打包") mw.ui.StartPackingBtn.SetBounds(walk.Rectangle{310, 20, 75, 30}) // 版本配置 mw.ui.VersionGb, err = walk.NewGroupBox(mw) mw.checkError(err) mw.ui.VersionGb.SetTitle("版本配置") mw.ui.VersionGb.SetFont(otherFont) err = mw.ui.VersionGb.SetBounds(walk.Rectangle{10, 60, 330, 260}) mw.checkError(err) // 版本类型 mw.ui.VersionTypeLb, err = walk.NewLabel(mw.ui.VersionGb) mw.checkError(err) mw.ui.VersionTypeLb.SetText("版本类型:") mw.ui.VersionTypeLb.SetFont(fountTitle) mw.ui.VersionTypeLb.SetBounds(walk.Rectangle{10, 20, 70, 25}) // 测试版 mw.ui.VersionTestRadio, err = walk.NewRadioButton(mw.ui.VersionGb) mw.checkError(err) mw.ui.VersionTestRadio.SetText("测试版") mw.ui.VersionTestRadio.SetBounds(walk.Rectangle{110, 20, 60, 25}) mw.ui.VersionTestRadio.SetChecked(true) // 正式版 mw.ui.VersionOffRadio, err = walk.NewRadioButton(mw.ui.VersionGb) mw.checkError(err) mw.ui.VersionOffRadio.SetText("正式版") mw.ui.VersionOffRadio.SetBounds(walk.Rectangle{180, 20, 70, 25}) // 主版本号 mw.ui.MasterVersionLb, err = walk.NewLabel(mw.ui.VersionGb) mw.checkError(err) mw.ui.MasterVersionLb.SetText("主版本号:") mw.ui.MasterVersionLb.SetFont(fountTitle) mw.ui.MasterVersionLb.SetBounds(walk.Rectangle{10, 60, 70, 25}) // 主版本号内容 mw.ui.MasterVersionLe, err = walk.NewLineEdit(mw.ui.VersionGb) mw.checkError(err) mw.ui.MasterVersionLe.SetBounds(walk.Rectangle{110, 60, 60, 25}) // 生成版本号 mw.ui.PackVersionLb, err = walk.NewLabel(mw.ui.VersionGb) mw.checkError(err) mw.ui.PackVersionLb.SetText("生成版本:") mw.ui.PackVersionLb.SetFont(fountTitle) mw.ui.PackVersionLb.SetBounds(walk.Rectangle{10, 100, 70, 25}) // 生成版本号内容 mw.ui.PackVersionLe, err = walk.NewLineEdit(mw.ui.VersionGb) mw.checkError(err) mw.ui.PackVersionLe.SetEnabled(false) mw.ui.PackVersionLe.SetBounds(walk.Rectangle{110, 100, 140, 25}) // PC助手 mw.ui.PcHelperLb, err = walk.NewLabel(mw.ui.VersionGb) mw.checkError(err) mw.ui.PcHelperLb.SetText("PC助手:") mw.ui.PcHelperLb.SetFont(fountTitle) mw.ui.PcHelperLb.SetBounds(walk.Rectangle{10, 140, 70, 25}) // PC助手上传路径 mw.ui.PcHelperLe, err = walk.NewLineEdit(mw.ui.VersionGb) mw.checkError(err) mw.ui.PcHelperLe.SetBounds(walk.Rectangle{110, 140, 150, 25}) // PC助手上传按钮 mw.ui.PcUploadBtn, err = walk.NewPushButton(mw.ui.VersionGb) mw.checkError(err) mw.ui.PcUploadBtn.SetText("上传") mw.ui.PcUploadBtn.SetBounds(walk.Rectangle{270, 140, 50, 25}) // Android助手 mw.ui.AndroidHelperLb, err = walk.NewLabel(mw.ui.VersionGb) mw.checkError(err) mw.ui.AndroidHelperLb.SetText("Android助手:") mw.ui.AndroidHelperLb.SetFont(fountTitle) mw.ui.AndroidHelperLb.SetBounds(walk.Rectangle{10, 180, 100, 25}) // Android助手上传路径 mw.ui.AndroidHelperLe, err = walk.NewLineEdit(mw.ui.VersionGb) mw.checkError(err) mw.ui.AndroidHelperLe.SetBounds(walk.Rectangle{110, 180, 150, 25}) // Android助手上传按钮 mw.ui.AndUploadBtn, err = walk.NewPushButton(mw.ui.VersionGb) mw.checkError(err) mw.ui.AndUploadBtn.SetText("上传") mw.ui.AndUploadBtn.SetBounds(walk.Rectangle{270, 180, 50, 25}) // Web 数据库 mw.ui.WebSqlLb, err = walk.NewLabel(mw.ui.VersionGb) mw.checkError(err) mw.ui.WebSqlLb.SetText("Web 数据库:") mw.ui.WebSqlLb.SetFont(fountTitle) mw.ui.WebSqlLb.SetBounds(walk.Rectangle{10, 220, 90, 25}) // Web 数据库上传路径 mw.ui.WebSqlLe, err = walk.NewLineEdit(mw.ui.VersionGb) mw.checkError(err) mw.ui.WebSqlLe.SetBounds(walk.Rectangle{110, 220, 150, 25}) // Web 数据库上传按钮 mw.ui.WebSqlBtn, err = walk.NewPushButton(mw.ui.VersionGb) mw.checkError(err) mw.ui.WebSqlBtn.SetText("上传") mw.ui.WebSqlBtn.SetBounds(walk.Rectangle{270, 220, 50, 25}) // 打包内容配置 mw.ui.PackGb, err = walk.NewGroupBox(mw) mw.checkError(err) mw.ui.PackGb.SetTitle("打包内容配置") mw.ui.PackGb.SetFont(otherFont) mw.ui.PackGb.SetBounds(walk.Rectangle{355, 60, 335, 260}) // 全选 mw.ui.CheckAllLb, err = walk.NewLabel(mw.ui.PackGb) mw.checkError(err) mw.ui.CheckAllLb.SetText("全选:") mw.ui.CheckAllLb.SetFont(fountTitle) mw.ui.CheckAllLb.SetBounds(walk.Rectangle{10, 20, 55, 25}) // 全选框 mw.ui.CheckAllCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.CheckAllCb.SetVisible(true) mw.ui.CheckAllCb.SetBounds(walk.Rectangle{80, 20, 70, 25}) // 服务器 mw.ui.ServerLb, err = walk.NewLabel(mw.ui.PackGb) mw.checkError(err) mw.ui.ServerLb.SetText("服务器:") mw.ui.ServerLb.SetFont(fountTitle) mw.ui.ServerLb.SetBounds(walk.Rectangle{10, 50, 55, 25}) // Java Web复选框 mw.ui.JavaWebCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.JavaWebCb.SetText("Java Web") mw.ui.JavaWebCb.SetBounds(walk.Rectangle{80, 50, 80, 25}) // Web 数据库复选框 mw.ui.WebSqlCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.WebSqlCb.SetText("Web 数据库") mw.ui.WebSqlCb.SetBounds(walk.Rectangle{170, 50, 90, 25}) // PC助手 mw.ui.PcHelperCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.PcHelperCb.SetText("PC助手") mw.ui.PcHelperCb.SetBounds(walk.Rectangle{80, 90, 60, 25}) // Android助手 mw.ui.AndroidHelperCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.AndroidHelperCb.SetText("Android助手") mw.ui.AndroidHelperCb.SetBounds(walk.Rectangle{170, 90, 90, 25}) // 控制器 mw.ui.ControlLb, err = walk.NewLabel(mw.ui.PackGb) mw.checkError(err) mw.ui.ControlLb.SetText("控制器:") mw.ui.ControlLb.SetFont(fountTitle) mw.ui.ControlLb.SetBounds(walk.Rectangle{10, 130, 55, 25}) // Linux knl mw.ui.LinuxKnlCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.LinuxKnlCb.SetText("Linux Knl") mw.ui.LinuxKnlCb.SetBounds(walk.Rectangle{80, 130, 80, 25}) // Linux App mw.ui.LinuxAppCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.LinuxAppCb.SetText("Linux App") mw.ui.LinuxAppCb.SetBounds(walk.Rectangle{170, 130, 80, 25}) // Linux Ruby mw.ui.LinuxRubyCb, err = walk.NewCheckBox(mw.ui.PackGb) mw.checkError(err) mw.ui.LinuxRubyCb.SetText("Linux Ruby") mw.ui.LinuxRubyCb.SetBounds(walk.Rectangle{80, 170, 90, 25}) // 打包日志 mw.ui.PackLogLb, err = walk.NewLabel(mw) mw.checkError(err) mw.ui.PackLogLb.SetText("打包日志") mw.ui.PackLogLb.SetFont(fountTitle) mw.ui.PackLogLb.SetBounds(walk.Rectangle{20, 330, 60, 20}) // 日志输出 mw.ui.lv, err = NewLogView(mw) mw.checkError(err) err = mw.ui.lv.SetBounds(walk.Rectangle{10, 360, 680, 190}) mw.checkError(err) log.SetOutput(mw.ui.lv) // img, _ = walk.NewIconFromResourceId(7) // mw.ui.browseBtn.SetImage(img) // mw.ui.browseBtn.SetImageAboveText(false) // mw.ui.browseBtn.SetBackground(bg) // reader, _ := os.Open("../../img/folder_add.png") // add, _, _ := image.Decode(reader) // var img walk.Image // img, _ = walk.NewBitmapFromImage(add) // mw.ui.browseBtn.SetImage(img) // img, _ = walk.NewImageFromFile("../../img/arrow_divide.png") // mw.ui.uploadBtn.SetImage(img) succeeded = true return nil }
func (mw *MyDialog) init(owner walk.Form) (err error) { // 设置最小化 mw.SetMinimizeBox(true) // 禁用最大化 mw.SetMaximizeBox(false) // 窗口屏幕居中 mw.SetFixedSize(true) mw.Dialog, err = walk.NewDialog(owner) mw.checkError(err) succeeded := false defer func() { if !succeeded { mw.Dispose() } }() // 设置主窗体大小 mw.SetClientSize(walk.Size{600, 450}) mw.checkError(err) // 设置主窗体标题 mw.SetTitle("邮件群发-by Cody.Guo") mw.checkError(err) // 设置上传组合窗体 mw.ui.mailListGb, err = walk.NewGroupBox(mw) mw.checkError(err) err = mw.ui.mailListGb.SetTitle("发送邮件列表") mw.checkError(err) err = mw.ui.mailListGb.SetBounds(walk.Rectangle{7, 8, 165, 434}) mw.checkError(err) // 邮件编辑框 mw.ui.mailListLe, err = walk.NewTextEdit(mw.ui.mailListGb) mw.checkError(err) err = mw.ui.mailListLe.SetBounds(walk.Rectangle{7, 25, 155, 405}) mw.checkError(err) // 邮件服务器配置 mw.ui.mailServerGb, err = walk.NewGroupBox(mw) mw.checkError(err) err = mw.ui.mailServerGb.SetTitle("邮件服务器配置") mw.checkError(err) err = mw.ui.mailServerGb.SetBounds(walk.Rectangle{185, 8, 405, 113}) mw.checkError(err) // 用户名 mw.ui.userNameLb, err = walk.NewLabel(mw.ui.mailServerGb) mw.checkError(err) err = mw.ui.userNameLb.SetText("用户名:") mw.checkError(err) err = mw.ui.userNameLb.SetBounds(walk.Rectangle{8, 20, 80, 20}) mw.checkError(err) // 用户名编辑框 mw.ui.userNameLe, err = walk.NewLineEdit(mw.ui.mailServerGb) mw.checkError(err) mw.ui.userNameLe.SetText(MS.UserName) err = mw.ui.userNameLe.SetBounds(walk.Rectangle{110, 20, 150, 20}) mw.checkError(err) // 密码 mw.ui.passwdLb, err = walk.NewLabel(mw.ui.mailServerGb) mw.checkError(err) err = mw.ui.passwdLb.SetText("密码:") mw.checkError(err) err = mw.ui.passwdLb.SetBounds(walk.Rectangle{8, 50, 80, 20}) mw.checkError(err) // 密码编辑框 mw.ui.passwdLe, err = walk.NewLineEdit(mw.ui.mailServerGb) mw.checkError(err) mw.ui.passwdLe.SetText(MS.Passwd) err = mw.ui.passwdLe.SetBounds(walk.Rectangle{110, 50, 150, 20}) mw.checkError(err) mw.ui.passwdLe.SetPasswordMode(true) // SMTP服务器 mw.ui.smtpLb, err = walk.NewLabel(mw.ui.mailServerGb) mw.checkError(err) err = mw.ui.smtpLb.SetText("SMTP服务器:") mw.checkError(err) err = mw.ui.smtpLb.SetBounds(walk.Rectangle{8, 80, 90, 20}) mw.checkError(err) // // SMTP服务器编辑框 mw.ui.smtpLe, err = walk.NewLineEdit(mw.ui.mailServerGb) mw.checkError(err) mw.ui.smtpLe.SetText(MS.Smtp) err = mw.ui.smtpLe.SetBounds(walk.Rectangle{110, 80, 150, 20}) mw.checkError(err) // PORT 25 mw.ui.portLe, err = walk.NewLineEdit(mw.ui.mailServerGb) mw.checkError(err) mw.ui.portLe.SetBounds(walk.Rectangle{270, 80, 30, 20}) mw.ui.portLe.SetText(MS.Port) // 发送配置 mw.ui.mailContentGb, err = walk.NewGroupBox(mw) mw.checkError(err) mw.ui.mailContentGb.SetTitle("发送配置") err = mw.ui.mailContentGb.SetBounds(walk.Rectangle{185, 135, 405, 187}) mw.checkError(err) // 邮件主题 mw.ui.mailSubLb, err = walk.NewLabel(mw.ui.mailContentGb) mw.checkError(err) mw.ui.mailSubLb.SetText("邮件主题:") err = mw.ui.mailSubLb.SetBounds(walk.Rectangle{8, 20, 80, 20}) mw.checkError(err) // 邮件主题编辑框 mw.ui.mailSubLe, err = walk.NewLineEdit(mw.ui.mailContentGb) mw.checkError(err) mw.ui.mailSubLe.SetText(MS.Subject) err = mw.ui.mailSubLe.SetBounds(walk.Rectangle{110, 20, 150, 20}) mw.checkError(err) // 邮件内容 mw.ui.mailBodyLb, err = walk.NewLabel(mw.ui.mailContentGb) mw.checkError(err) mw.ui.mailBodyLb.SetText("邮件内容:") err = mw.ui.mailBodyLb.SetBounds(walk.Rectangle{8, 50, 80, 20}) mw.checkError(err) // 邮件内容编辑框 mw.ui.mailBodyLe, err = walk.NewTextEdit(mw.ui.mailContentGb) mw.checkError(err) mw.ui.mailBodyLe.SetText(MS.Body) err = mw.ui.mailBodyLe.SetBounds(walk.Rectangle{110, 50, 280, 100}) mw.checkError(err) // 附件 mw.ui.mailAdjLb, err = walk.NewLabel(mw.ui.mailContentGb) mw.checkError(err) mw.ui.mailAdjLb.SetText("附件:") err = mw.ui.mailAdjLb.SetBounds(walk.Rectangle{8, 160, 80, 20}) mw.checkError(err) // 附件编辑框 mw.ui.mailAdjLe, err = walk.NewLineEdit(mw.ui.mailContentGb) mw.checkError(err) err = mw.ui.mailAdjLe.SetBounds(walk.Rectangle{110, 160, 150, 20}) mw.checkError(err) mw.ui.mailAdjLe.SetText(MS.Adjunct) mw.ui.mailAdjLe.SetReadOnly(true) // 浏览 mw.ui.browseBtn, err = walk.NewPushButton(mw.ui.mailContentGb) mw.checkError(err) mw.ui.browseBtn.SetText("浏览") err = mw.ui.browseBtn.SetBounds(walk.Rectangle{270, 155, 35, 30}) mw.checkError(err) // 日志 mw.ui.logLb, err = walk.NewLabel(mw) mw.checkError(err) mw.ui.logLb.SetText("日志") err = mw.ui.logLb.SetBounds(walk.Rectangle{185, 325, 30, 20}) mw.checkError(err) // 日志输出 mw.ui.lv, err = NewLogView(mw) mw.checkError(err) err = mw.ui.lv.SetBounds(walk.Rectangle{185, 345, 405, 70}) mw.checkError(err) log.SetOutput(mw.ui.lv) // 发送邮件 mw.ui.sendBtn, err = walk.NewPushButton(mw) mw.checkError(err) mw.ui.sendBtn.SetText("开始发送") err = mw.ui.sendBtn.SetBounds(walk.Rectangle{350, 420, 80, 30}) mw.checkError(err) // // 设置背景 // color := walk.RGB(255, 0, 0) // bg, _ := walk.NewSolidColorBrush(color) // mw.SetBackground(bg) // 设置字体和图标 fount, _ := walk.NewFont("宋体", 11, 0) mw.SetFont(fount) mw.ui.mailListGb.SetFont(fount) mw.ui.mailServerGb.SetFont(fount) mw.ui.mailContentGb.SetFont(fount) succeeded = true return nil }