鱼C论坛

 找回密码
 立即注册
查看: 453|回复: 5

tkinter如何做二级三级窗口

[复制链接]
发表于 2024-9-6 13:59:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
tkinter如何做二级三级窗口,和图片中一样登录后点击相应按钮转到三级窗口中,要时有类似代码格式发给我做个参考
无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-9-6 14:00:04 | 显示全部楼层
当然可以!我们可以通过创建多个 `tk.Toplevel` 窗口来实现二级三级窗口。下面是一个简单的示例代码,展示了如何在 `tkinter` 中实现登录后点击按钮进入三级窗口:

  1. import tkinter as tk
  2. from tkinter import messagebox

  3. def open_second_window():
  4.     second_window = tk.Toplevel(root)
  5.     second_window.title("二级窗口")
  6.     second_window.geometry("300x200")
  7.    
  8.     tk.Label(second_window, text="这是二级窗口").pack(pady=20)
  9.    
  10.     btn_to_third = tk.Button(second_window, text="打开三级窗口", command=open_third_window)
  11.     btn_to_third.pack(pady=10)

  12. def open_third_window():
  13.     third_window = tk.Toplevel(root)
  14.     third_window.title("三级窗口")
  15.     third_window.geometry("300x200")
  16.    
  17.     tk.Label(third_window, text="这是三级窗口").pack(pady=20)

  18. def login():
  19.     # 在这块你可以加你的登录逻辑
  20.     username = entry_username.get()
  21.     password = entry_password.get()
  22.    
  23.     # 这里简单判断一下用户名和密码
  24.     if username == "admin" and password == "1234":
  25.         open_second_window()
  26.     else:
  27.         messagebox.showerror("错误", "用户名或密码错误")

  28. root = tk.Tk()
  29. root.title("登录窗口")
  30. root.geometry("300x200")

  31. tk.Label(root, text="用户名:").pack(pady=5)
  32. entry_username = tk.Entry(root)
  33. entry_username.pack(pady=5)

  34. tk.Label(root, text="密码:").pack(pady=5)
  35. entry_password = tk.Entry(root, show="*")
  36. entry_password.pack(pady=5)

  37. btn_login = tk.Button(root, text="登录", command=login)
  38. btn_login.pack(pady=20)
  39.    
  40. root.mainloop()
复制代码


代码说明:
1. 在 `root` 窗口中设计了一个简单的登录界面。
2. `login()` 函数用来处理登录逻辑,登录成功后调用 `open_second_window()` 函数打开二级窗口。
3. `open_second_window()` 函数创建了一个 `Toplevel` 窗口作为二级窗口,并在该窗口中提供打开三级窗口的按钮。
4. `open_third_window()` 函数创建了另一个 `Toplevel` 窗口作为三级窗口。

这样,你点击二级窗口中的按钮就可以打开三级窗口。这是一个基本的示例,你可以根据需要进行扩展和改进。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-6 16:06:58 | 显示全部楼层
本帖最后由 某一个“天” 于 2024-9-13 17:34 编辑

求最佳~
  1. import tkinter as tk  
  2. from tkinter import ttk  
  3.   
  4. def open_second_window():  
  5.     second_window = tk.Toplevel(root)  
  6.     second_window.title("二级窗口")  
  7.       
  8.     # 可以在这里添加更多的控件到二级窗口  
  9.     ttk.Button(second_window, text="打开三级窗口", command=open_third_window).pack(pady=20)  
  10.   
  11. def open_third_window():  
  12.     third_window = tk.Toplevel(root)  
  13.     third_window.title("三级窗口")  
  14.       
  15.     # 可以在这里添加更多的控件到三级窗口  
  16.     ttk.Label(third_window, text="这是三级窗口").pack(pady=20)  
  17.   
  18. # 创建主窗口  
  19. root = tk.Tk()  
  20. root.title("主窗口")  
  21.   
  22. # 登录按钮(在这个示例中,我们直接通过点击来模拟登录)  
  23. login_button = ttk.Button(root, text="登录", command=open_second_window)  
  24. login_button.pack(pady=20)  
  25.   
  26. # 启动事件循环  
  27. root.mainloop()
复制代码

然而,上述代码直接在点击登录按钮后打开了二级窗口,没有实际的登录逻辑。在真实的应用中,你可能需要添加一些输入框(例如用户名和密码)和验证逻辑。
如果你的意图是点击登录按钮后验证登录信息,然后根据验证结果打开相应的窗口,你可以修改open_second_window函数来包含这些逻辑。但是,为了保持示例的简洁性,我没有包含这些。
请注意,tkinter.ttk模块提供了更现代的控件,比如ttk.Button和ttk.Label,它们通常比标准的Tkinter控件有更好的外观和性能。但是,你也可以直接使用tkinter.Button和tkinter.Label,这取决于你的具体需求和偏好。
在上面的代码中,每个窗口(主窗口、二级窗口、三级窗口)都是独立的Tkinter窗口对象,它们可以独立地添加控件和事件处理函数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-7 11:08:24 | 显示全部楼层
FishC 发表于 2024-9-6 14:00
当然可以!我们可以通过创建多个 `tk.Toplevel` 窗口来实现二级三级窗口。下面是一个简单的示例代码,展示 ...

6
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-7 11:08:44 | 显示全部楼层


好的,我理解你希望看到如何在 `tkinter` 中创建层级窗口。下面是完成该任务的代码示例:

  1. import tkinter as tk
  2. from tkinter import messagebox

  3. # 登录窗口的登录按钮事件处理函数
  4. def login():
  5.     username = entry_username.get()
  6.     password = entry_password.get()
  7.    
  8.     # 这里简单的判断用户名和密码
  9.     if username == "admin" and password == "1234":
  10.         open_second_window()
  11.     else:
  12.         messagebox.showerror("错误", "用户名或密码错误")

  13. # 打开二级窗口
  14. def open_second_window():
  15.     second_window = tk.Toplevel(root)
  16.     second_window.title("二级窗口")
  17.     second_window.geometry("300x200")
  18.    
  19.     tk.Label(second_window, text="这是二级窗口").pack(pady=20)
  20.    
  21.     btn_to_third = tk.Button(second_window, text="打开三级窗口", command=open_third_window)
  22.     btn_to_third.pack(pady=10)
  23.    
  24.     second_window.mainloop()

  25. # 打开三级窗口
  26. def open_third_window():
  27.     third_window = tk.Toplevel(root)
  28.     third_window.title("三级窗口")
  29.     third_window.geometry("300x200")
  30.    
  31.     tk.Label(third_window, text="这是三级窗口").pack(pady=20)
  32.    
  33.     third_window.mainloop()

  34. # 主窗口(登录窗口)
  35. root = tk.Tk()
  36. root.title("登录窗口")
  37. root.geometry("300x200")

  38. tk.Label(root, text="用户名:").pack(pady=5)
  39. entry_username = tk.Entry(root)
  40. entry_username.pack(pady=5)

  41. tk.Label(root, text="密码:").pack(pady=5)
  42. entry_password = tk.Entry(root, show="*")
  43. entry_password.pack(pady=5)

  44. btn_login = tk.Button(root, text="登录", command=login)
  45. btn_login.pack(pady=20)
  46.    
  47. root.mainloop()
复制代码


代码说明:
- `login()` 函数处理登录逻辑。如果用户名和密码匹配(这里假设用户名为 "admin" 且密码为 "1234"),则调用 `open_second_window()` 函数打开二级窗口。
- `open_second_window()` 函数创建了一个 `Toplevel` 窗口作为二级窗口,在该窗口内有一个按钮,用于打开三级窗口。
- `open_third_window()` 函数创建了另一个 `Toplevel` 窗口作为三级窗口。
- `root` 窗口是主窗口(登录窗口),其中包含用户名和密码输入框及登录按钮。

这样,通过登录窗口可以打开二级窗口,进一步可以从二级窗口打开三级窗口。希望这个示例符合你的需求,并对你有所帮助!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-8 07:52:55 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 03:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表