epg.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import os
  2. import os.path
  3. import tkinter as tk
  4. from tkinter import ttk
  5. import utils.constants as constants
  6. from utils.config import config
  7. from utils.tools import resource_path
  8. class EpgUI:
  9. def init_ui(self, root):
  10. """
  11. Init epg UI
  12. """
  13. frame_epg_open_epg = tk.Frame(root)
  14. frame_epg_open_epg.pack(fill=tk.X)
  15. self.open_epg_label = tk.Label(
  16. frame_epg_open_epg, text="开启EPG源:", width=9
  17. )
  18. self.open_epg_label.pack(side=tk.LEFT, padx=4, pady=8)
  19. self.open_epg_var = tk.BooleanVar(value=config.open_epg)
  20. self.open_epg_checkbutton = ttk.Checkbutton(
  21. frame_epg_open_epg,
  22. variable=self.open_epg_var,
  23. onvalue=True,
  24. offvalue=False,
  25. command=self.update_open_epg,
  26. )
  27. self.open_epg_checkbutton.pack(side=tk.LEFT, padx=4, pady=8)
  28. frame_epg_epg_urls = tk.Frame(root)
  29. frame_epg_epg_urls.pack(fill=tk.X)
  30. frame_epg_urls_column1 = tk.Frame(frame_epg_epg_urls)
  31. frame_epg_urls_column1.pack(side=tk.LEFT, fill=tk.Y)
  32. frame_epg_urls_column2 = tk.Frame(frame_epg_epg_urls)
  33. frame_epg_urls_column2.pack(side=tk.LEFT, fill=tk.Y)
  34. self.epg_urls_label = tk.Label(
  35. frame_epg_urls_column1, text="EPG:", width=9
  36. )
  37. self.epg_urls_label.pack(side=tk.LEFT, padx=4, pady=8)
  38. self.epg_file_button = tk.ttk.Button(
  39. frame_epg_urls_column2,
  40. text="编辑",
  41. command=self.edit_epg_file,
  42. )
  43. self.epg_file_button.pack(side=tk.LEFT, padx=4, pady=0)
  44. def update_open_epg(self):
  45. config.set("Settings", "open_epg", str(self.open_epg_var.get()))
  46. def edit_epg_file(self):
  47. path = resource_path(constants.epg_path)
  48. if os.path.exists(path):
  49. os.system(f'notepad.exe {path}')
  50. def change_entry_state(self, state):
  51. for entry in [
  52. "open_epg_checkbutton",
  53. "epg_file_button",
  54. ]:
  55. getattr(self, entry).config(state=state)