Open ax-hack opened 3 years ago
Why component
Label{ AssignTo: &closeDlg.QuestionLabel, MinSize: Size{600, 50}, Text: "Вы действительно желаете выйти?", }
not displayed in Dialog?
My full code:
package main import ( "log" "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) func main() { // Окно mw := new(MyMainWindow) //model := NewFooModel() if err := (MainWindow{ AssignTo: &mw.MainWindow, Title: "goAPN: парсер данных для сайтов автозапчастей", Size: Size{800, 600}, Layout: VBox{MarginsZero: false}, Children: []Widget{ TabWidget{ Pages: []TabPage{ TabPage{ Title: "Скрэпер", MinSize: Size{800, 600}, Layout: VBox{}, Children: []Widget{ ProgressBar{ AssignTo: &mw.ProgressBar, MinSize: Size{800, 10}, }, }, }, }, }, }, }.Create()); err != nil { log.Fatal(err) } mw.Closing().Attach(func(canceled *bool, reason walk.CloseReason) { //walk.MsgBox(nil, "Info", fmt.Sprintf("Closing now (reason %d)", reason), walk.MsgBoxIconInformation) //mw.LogString <- "INFO: Попытка выхода из программы" if reason == 0 { closeDlg := new(MyCloseDlg) if err := (Dialog{ AssignTo: &closeDlg.Dialog, MinSize: Size{600, 100}, Title: "Подтверждение выхода", Layout: VBox{MarginsZero: false}, Children: []Widget{ HSplitter{ MinSize: Size{600, 50}, Children: []Widget{ GroupBox{ MinSize: Size{600, 50}, Layout: VBox{}, Children: []Widget{ Label{ AssignTo: &closeDlg.QuestionLabel, MinSize: Size{600, 50}, Text: "Вы действительно желаете выйти?", }}}}}, HSplitter{ MinSize: Size{600, 50}, Children: []Widget{ GroupBox{ MinSize: Size{600, 50}, Layout: Grid{Columns: 2}, Children: []Widget{ PushButton{ AssignTo: &closeDlg.ButtonYes, Text: "Да", OnClicked: func() { closeDlg.ButtonYes.SetEnabled(false) closeDlg.ButtonNo.SetEnabled(false) //mw.LogString <- "exit" walk.App().Exit(0) }, }, PushButton{ AssignTo: &closeDlg.ButtonNo, Text: "Нет", OnClicked: func() { //mw.LogString <- "INFO: Попытка выхода была отмененна" closeDlg.Close(0) }, }, }, }, }, }, }, }).Create(nil); err != nil { //mw.LogString <- "FATAL: Ошибка при создании окна: " + err.Error() log.Fatal(err) } closeDlg.Show() *canceled = true } }) mw.Run() } ///// Типизация type MyMainWindow struct { *walk.MainWindow // Виджеты LoginGroup *walk.GroupBox AuthSave *walk.CheckBox WithoutCB *walk.CheckBox AuthState *walk.LineEdit AllPositionCount *walk.NumberEdit StatusLabel *walk.LineEdit WorkingWith *walk.LineEdit CorrListPathEmex *walk.LineEdit CorrListPathArmtek *walk.LineEdit CorrListPathAutopiter *walk.LineEdit ProfileListLb *walk.ComboBox EmexRegionsList *walk.ComboBox AutopiterRegionsList *walk.ComboBox INXLSXPathNameEntr *walk.TextEdit CorrListBtnEmex *walk.PushButton CorrListBtnArmtek *walk.PushButton CorrListBtnAutopiter *walk.PushButton ProfileLoadBtn *walk.PushButton ProfileRemoveBtn *walk.PushButton ProfileSaveBtn *walk.PushButton OpenXLSXBtn *walk.PushButton StartBtn *walk.PushButton PauseBtn *walk.PushButton StopBtn *walk.PushButton GroupSites *walk.GroupBox SettingsTab *walk.TabPage ProxyTab *walk.TabPage DangerSettingsTab *walk.TabPage ConsoleLog *walk.TextEdit // вывод ошибок и информации CurrPosEntr *walk.NumberEdit // текущая позиция ProfileSaveNameEntry *walk.LineEdit LoginEntr *walk.LineEdit // логин PasswdEntr *walk.LineEdit PayFromEntr *walk.NumberEdit PayToEntr *walk.NumberEdit InclWordEntr *walk.TextEdit ExclWordEntr *walk.TextEdit DelFromEntr *walk.NumberEdit DelToEntr *walk.NumberEdit CntFromEntr *walk.NumberEdit CntToEntr *walk.NumberEdit OriginalEntr *walk.TextEdit AnalogEntr *walk.TextEdit ChineEntr *walk.TextEdit OutFNameEntr *walk.LineEdit SettingTimeOut *walk.NumberEdit SettingTimeOutTwo *walk.NumberEdit SettingTimeOutThree *walk.NumberEdit SiteModeEmexRbtn *walk.RadioButton SiteModeArmtekRbtn *walk.RadioButton SiteModeAutopiterRbtn *walk.RadioButton ModeRadioBtn_1 *walk.RadioButton ModeRadioBtn_2 *walk.RadioButton ModeRadioBtn_3 *walk.RadioButton ModeRadioButtonGroup *walk.RadioButtonGroup tv *walk.TableView ProgressBar *walk.ProgressBar ProxyTorAuto *walk.CheckBox LogString chan string //ArmtekSession ArmtekSessionData //WorkState State //config *Settings //configSearch *SearchConf //configCorr CorrectConf //model *FooModel //ForFind []Foo //EmexRegionsL []EmexRegionStruct //AutopiterRegionsL []AutopiterRegionStruct prevFilePath string prevOutFilePath string RootDir string AutopiterSession string AutopiterAccessToken string proxyMode int // 0 - выкл, 1 - tor, 2 - ? AutopiterAuthed bool ArmtekAuthed bool } type MyCloseDlg struct { *walk.Dialog QuestionLabel *walk.Label ButtonYes *walk.PushButton ButtonNo *walk.PushButton }
If you remove the HSplitters, things should clear up.
HSplitter
Ok, but why?
Why component
not displayed in Dialog?
My full code: