1
0

test-ui-2.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import tkinter as tk
  2. def show_card(card_number):
  3. card1_frame.grid_forget()
  4. card2_frame.grid_forget()
  5. card3_frame.grid_forget()
  6. if card_number == 1:
  7. card1_frame.grid(row=0, column=0, padx=10, pady=10, sticky="nsew")
  8. elif card_number == 2:
  9. card2_frame.grid(row=0, column=0, padx=10, pady=10, sticky="nsew")
  10. elif card_number == 3:
  11. card3_frame.grid(row=0, column=0, padx=10, pady=10, sticky="nsew")
  12. root = tk.Tk()
  13. root.title("模拟 CardLayout")
  14. # 创建一个容器 Frame
  15. container = tk.Frame(root)
  16. container.pack(fill="both", expand=True)
  17. # 创建三个 "卡片" Frame
  18. card1_frame = tk.Frame(container, bg="lightblue", padx=50, pady=50)
  19. card2_frame = tk.Frame(container, bg="lightgreen", padx=50, pady=50)
  20. card3_frame = tk.Frame(container, bg="lightyellow", padx=50, pady=50)
  21. card1_label = tk.Label(card1_frame, text="卡片 1")
  22. card1_label.pack()
  23. card2_label = tk.Label(card2_frame, text="卡片 2")
  24. card2_label.pack()
  25. card3_label = tk.Label(card3_frame, text="卡片 3")
  26. card3_label.pack()
  27. # 初始显示第一个卡片
  28. show_card(1)
  29. # 创建切换按钮
  30. button1 = tk.Button(root, text="显示卡片 1", command=lambda: show_card(1))
  31. button1.pack(pady=5)
  32. button2 = tk.Button(root, text="显示卡片 2", command=lambda: show_card(2))
  33. button2.pack(pady=5)
  34. button3 = tk.Button(root, text="显示卡片 3", command=lambda: show_card(3))
  35. button3.pack(pady=5)
  36. root.mainloop()