online_search.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import tkinter as tk
  2. from tkinter import ttk
  3. from utils.config import config
  4. class OnlineSearchUI:
  5. def init_ui(self, root):
  6. """
  7. Init online search UI
  8. """
  9. frame_online_search_open_online_search = tk.Frame(root)
  10. frame_online_search_open_online_search.pack(fill=tk.X)
  11. self.open_online_search_label = tk.Label(
  12. frame_online_search_open_online_search, text="开启关键字搜索:", width=13
  13. )
  14. self.open_online_search_label.pack(side=tk.LEFT, padx=4, pady=8)
  15. self.open_online_search_var = tk.BooleanVar(
  16. value=config.getboolean("Settings", "open_online_search", fallback=False)
  17. )
  18. self.open_online_search_checkbutton = ttk.Checkbutton(
  19. frame_online_search_open_online_search,
  20. variable=self.open_online_search_var,
  21. onvalue=True,
  22. offvalue=False,
  23. command=self.update_open_online_search,
  24. )
  25. self.open_online_search_checkbutton.pack(side=tk.LEFT, padx=4, pady=8)
  26. frame_online_search_page_num = tk.Frame(root)
  27. frame_online_search_page_num.pack(fill=tk.X)
  28. self.page_num_label = tk.Label(
  29. frame_online_search_page_num, text="获取页数:", width=13
  30. )
  31. self.page_num_label.pack(side=tk.LEFT, padx=4, pady=8)
  32. self.page_num_entry = tk.Entry(frame_online_search_page_num)
  33. self.page_num_entry.pack(side=tk.LEFT, padx=4, pady=8)
  34. self.page_num_entry.insert(
  35. 0, config.getint("Settings", "online_search_page_num", fallback=3)
  36. )
  37. self.page_num_entry.bind("<KeyRelease>", self.update_page_num)
  38. frame_online_search_recent_days = tk.Frame(root)
  39. frame_online_search_recent_days.pack(fill=tk.X)
  40. self.recent_days_label = tk.Label(
  41. frame_online_search_recent_days, text="获取时间范围(天):", width=13
  42. )
  43. self.recent_days_label.pack(side=tk.LEFT, padx=4, pady=8)
  44. self.recent_days_entry = tk.Entry(frame_online_search_recent_days)
  45. self.recent_days_entry.pack(side=tk.LEFT, padx=4, pady=8)
  46. self.recent_days_entry.insert(
  47. 30, config.getint("Settings", "recent_days", fallback=30)
  48. )
  49. self.recent_days_entry.bind("<KeyRelease>", self.update_recent_days)
  50. def update_open_online_search(self):
  51. config.set(
  52. "Settings", "open_online_search", str(self.open_online_search_var.get())
  53. )
  54. def update_page_num(self, event):
  55. config.set("Settings", "online_search_page_num", self.page_num_entry.get())
  56. def update_recent_days(self, event):
  57. config.set("Settings", "recent_days", self.recent_days_entry.get())
  58. def change_entry_state(self, state):
  59. for entry in [
  60. "open_online_search_checkbutton",
  61. "page_num_entry",
  62. "recent_days_entry",
  63. ]:
  64. getattr(self, entry).config(state=state)