mirror of
https://github.com/jorenchik/mdemory.git
synced 2026-03-22 00:26:21 +00:00
mdem element with hidable answer box
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user