gui.py 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # coding: utf-8
  2. import typing
  3. from tkinter import Tk
  4. from tkinter import StringVar
  5. from tkinter import OptionMenu
  6. from tkinter import W
  7. from synergine2.config import Config
  8. from opencombat.gui import Gui
  9. from opencombat.strategy.manager import TroopManager
  10. class SelectTroopsGui(Gui):
  11. def __init__(
  12. self,
  13. config: Config,
  14. master: Tk,
  15. troop_manager: TroopManager,
  16. countries: typing.List[str],
  17. ) -> None:
  18. super().__init__(config, master)
  19. self._master.title('Troops selection')
  20. # Widgets
  21. self.selected_country_var = StringVar(self._master)
  22. self.selected_country_var.set(countries[0])
  23. self.selected_country_var.trace('w', self.change_country)
  24. self.select_country_menu = OptionMenu(
  25. self._master,
  26. self.selected_country_var,
  27. *countries,
  28. )
  29. # Layout
  30. self.select_country_menu.grid(row=0, column=0, sticky=W)
  31. def change_country(self, *args, **kwargs) -> None:
  32. self._logger.info('Change country to "{}"'.format(
  33. self.selected_country_var.get(),
  34. ))