walk icon indicating copy to clipboard operation
walk copied to clipboard

Why my code doesn't work correct?

Open ax-hack opened this issue 5 years ago • 2 comments

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
}

tmp

ax-hack avatar Sep 09 '20 10:09 ax-hack

If you remove the HSplitters, things should clear up.

lxn avatar Sep 10 '20 08:09 lxn

If you remove the HSplitters, things should clear up.

Ok, but why?

ax-hack avatar Sep 28 '20 05:09 ax-hack