main.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package main
  2. import (
  3. "image/color"
  4. "log"
  5. "fyne.io/fyne/v2"
  6. "fyne.io/fyne/v2/app"
  7. "fyne.io/fyne/v2/canvas"
  8. "fyne.io/fyne/v2/container"
  9. "fyne.io/fyne/v2/layout"
  10. "fyne.io/fyne/v2/widget"
  11. //"fyne.io/fyne/v2/layout"
  12. )
  13. var myApp fyne.App
  14. var winMain fyne.Window
  15. var botLogin string
  16. var botPass string
  17. var boxLeft *fyne.Container
  18. func main() {
  19. myApp = app.New()
  20. winMain = myApp.NewWindow("[Бото-ферма WarTank]")
  21. winMain.Resize(fyne.NewSize(800, 600))
  22. green := color.NRGBA{R: 0, G: 180, B: 0, A: 255}
  23. text1 := canvas.NewText("Список ботов", green)
  24. text2 := canvas.NewText("There", green)
  25. text2.Move(fyne.NewPos(20, 20))
  26. //content := container.NewWithoutLayout(text1, text2)
  27. // content := container.New(layout.NewGridLayout(2), text1, text2)
  28. boxLeft = container.NewVBox(text1, text2)
  29. btnAddBot := widget.NewButton("Добавить бота", btnAddClick)
  30. btnExit := widget.NewButton("Выход", btnExitClick)
  31. boxDown := container.NewHBox(btnAddBot, layout.NewSpacer(), btnExit)
  32. boxBorder := container.NewBorder(nil, nil, boxLeft, nil, boxLeft)
  33. boxMain := container.NewBorder(nil, boxDown, nil, nil, boxBorder)
  34. winMain.SetContent(boxMain)
  35. winMain.Show()
  36. myApp.Run()
  37. }
  38. func btnAddClick() {
  39. log.Println("btnAddclick()")
  40. winAddBot := myApp.NewWindow("Новый бот")
  41. entLogin := widget.NewEntry()
  42. entPass := widget.NewEntry()
  43. form := &widget.Form{
  44. Items: []*widget.FormItem{ // we can specify items in the constructor
  45. {Text: "Логин", Widget: entLogin},
  46. {Text: "Пароль", Widget: entPass},
  47. },
  48. OnSubmit: func() { // optional, handle form submission
  49. botLogin = entLogin.Text
  50. log.Println("Form submitted:", entLogin.Text)
  51. botPass = entPass.Text
  52. log.Println("multiline:", entPass.Text)
  53. winAddBot.Close()
  54. btnBot := widget.NewButton(botLogin, btnBotClick(botLogin, botPass))
  55. boxLeft.Add(btnBot)
  56. // winMain.Canvas().Refresh()
  57. },
  58. }
  59. winAddBot.Resize(fyne.NewSize(640, 480))
  60. winAddBot.SetContent(form)
  61. winAddBot.Show()
  62. }
  63. func btnBotClick(botName, botPass string) func() {
  64. _botName := botName
  65. _botPass := botPass
  66. return func() {
  67. log.Printf("btnBotClick().fn(): botName=%q\tbotPass=%q\n", _botName, _botPass)
  68. }
  69. }
  70. func btnExitClick() {
  71. log.Println("btnExitClick()")
  72. myApp.Quit()
  73. }