walk
walk copied to clipboard
Why my code doesn't work correct?
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.
If you remove the
HSplitters, things should clear up.
Ok, but why?