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;
// }
func CreateMdem(frontText string) *widgets.QWidget {
func CreateMdem(frontText string, backText string) *widgets.QWidget {
// frontText := "What is the capital of Latvia?"
// DefineMdem
wMdem := widgets.NewQWidget(nil, 0)
wMdem.SetMinimumHeight(60)
hMdem := widgets.NewQHBoxLayout()
wMdem.SetLayout(hMdem)
vMdem := widgets.NewQVBoxLayout()
// DefineId
wMdem.SetLayout(vMdem)
id := fmt.Sprintf("mdem_%d", 1)
wMdem.SetObjectName(id)
wMdem.SetStyleSheet(fmt.Sprintf(`
QWidget#%s {
border: 1px solid gray;
background: white;
}
`, id))
// AddContent
mdemText := widgets.NewQLabel2(frontText, nil, 0)
hMdem.AddWidget(mdemText, 0, 0)
hMdem.AddStretch(1)
// InitFront
wFront := widgets.NewQWidget(nil, 0)
hFront := widgets.NewQHBoxLayout()
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)
showAnswer := widgets.NewQToolButton(nil)
hideButton.SetText("Hide")
showAnswer.SetText("Show")
hMdem.AddWidget(hideButton, 0, 0)
hMdem.AddWidget(showAnswer, 0, 0)
hFront.AddWidget(hideButton, 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
}
@@ -139,19 +181,19 @@ func main() {
// CreateMdems
var mdems []*widgets.QWidget
mdems = append(
mdems, CreateMdem("What is the capital of Latvia?"),
mdems, CreateMdem("What is the capital of Latvia?", "Riga"),
)
mdems = append(
mdems, CreateMdem("What is the capital of Estonia?"),
mdems, CreateMdem("What is the capital of Estonia?", "Tallin"),
)
mdems = append(
mdems, CreateMdem("What is the capital of Lithuania?"),
mdems, CreateMdem("What is the capital of Lithuania?", "Vilnius"),
)
mdems = append(
mdems, CreateMdem("What is the capital of Croatia?"),
mdems, CreateMdem("What is the capital of Croatia?", "Zagreb"),
)
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++ {
hMdemScroll.AddWidget(mdems[i], 0, 0)