mdem element with hidable answer box

This commit is contained in:
jorenchik
2024-09-07 19:16:53 +03:00
parent 9b6cb723f8
commit e0ab96513f

View File

@@ -16,35 +16,77 @@ var workingPath string = "/home/jorenchik/Code/mdemory/memorybase"
// widget *widgets.QWidget; // widget *widgets.QWidget;
// } // }
func CreateMdem(frontText string) *widgets.QWidget { func CreateMdem(frontText string, backText string) *widgets.QWidget {
// frontText := "What is the capital of Latvia?" // frontText := "What is the capital of Latvia?"
// DefineMdem // DefineMdem
wMdem := widgets.NewQWidget(nil, 0) wMdem := widgets.NewQWidget(nil, 0)
wMdem.SetMinimumHeight(60) vMdem := widgets.NewQVBoxLayout()
hMdem := widgets.NewQHBoxLayout()
wMdem.SetLayout(hMdem)
// DefineId wMdem.SetLayout(vMdem)
id := fmt.Sprintf("mdem_%d", 1) id := fmt.Sprintf("mdem_%d", 1)
wMdem.SetObjectName(id) wMdem.SetObjectName(id)
wMdem.SetStyleSheet(fmt.Sprintf(`
QWidget#%s {
border: 1px solid gray;
background: white;
}
`, id))
// AddContent // InitFront
mdemText := widgets.NewQLabel2(frontText, nil, 0) wFront := widgets.NewQWidget(nil, 0)
hMdem.AddWidget(mdemText, 0, 0) hFront := widgets.NewQHBoxLayout()
hMdem.AddStretch(1) wFront.SetMinimumHeight(60)
wFront.SetLayout(hFront)
wFront.SetProperty("first", core.NewQVariant1(true));
wMdem.SetStyleSheet(fmt.Sprintf(`
QWidget#%s > QWidget {
border-right: 1px solid gray;
border-bottom: 1px solid gray;
border-left: 1px solid gray;
}
QWidget#%s > QWidget[first="true"] {
border-top: 1px solid gray;
}
`, id, id))
// AddFrontContent
elFrontText := widgets.NewQLabel2(frontText, nil, 0)
hFront.AddWidget(elFrontText, 0, 0)
hFront.AddStretch(1)
hideButton := widgets.NewQToolButton(nil) hideButton := widgets.NewQToolButton(nil)
showAnswer := widgets.NewQToolButton(nil) showAnswer := widgets.NewQToolButton(nil)
hideButton.SetText("Hide") hideButton.SetText("Hide")
showAnswer.SetText("Show") showAnswer.SetText("Show")
hMdem.AddWidget(hideButton, 0, 0) hFront.AddWidget(hideButton, 0, 0)
hMdem.AddWidget(showAnswer, 0, 0) hFront.AddWidget(showAnswer, 0, 0)
wBack := widgets.NewQWidget(nil, 0)
hBack := widgets.NewQVBoxLayout()
// wBack.SetMinimumHeight(60)
wBack.SetLayout(hBack)
vMdem.AddWidget(wBack, 0, 0)
// AddBackContent
elBackText := widgets.NewQLabel2(
fmt.Sprintf("- %s", backText),
nil,
0,
)
hBack.AddWidget(elBackText, 0, 0)
hBack.AddStretch(1)
vMdem.AddWidget(wFront, 0, 0)
vMdem.AddWidget(wBack, 0, 0)
vMdem.SetContentsMargins(0,0,0,0)
vMdem.SetSpacing(0)
wBack.Hide()
hideButton.ConnectClicked(func(checked bool) {
if wBack.IsVisible() {
wBack.Hide()
}
})
showAnswer.ConnectClicked(func(checked bool) {
if !wBack.IsVisible() {
wBack.Show()
}
})
return wMdem return wMdem
} }
@@ -139,19 +181,19 @@ func main() {
// CreateMdems // CreateMdems
var mdems []*widgets.QWidget var mdems []*widgets.QWidget
mdems = append( mdems = append(
mdems, CreateMdem("What is the capital of Latvia?"), mdems, CreateMdem("What is the capital of Latvia?", "Riga"),
) )
mdems = append( mdems = append(
mdems, CreateMdem("What is the capital of Estonia?"), mdems, CreateMdem("What is the capital of Estonia?", "Tallin"),
) )
mdems = append( mdems = append(
mdems, CreateMdem("What is the capital of Lithuania?"), mdems, CreateMdem("What is the capital of Lithuania?", "Vilnius"),
) )
mdems = append( mdems = append(
mdems, CreateMdem("What is the capital of Croatia?"), mdems, CreateMdem("What is the capital of Croatia?", "Zagreb"),
) )
mdems = append( mdems = append(
mdems, CreateMdem("What is the capital of Chechia?"), mdems, CreateMdem("What is the capital of Chechia?", "Prague"),
) )
for i := 0; i < len(mdems); i++ { for i := 0; i < len(mdems); i++ {
hMdemScroll.AddWidget(mdems[i], 0, 0) hMdemScroll.AddWidget(mdems[i], 0, 0)