鱼C论坛

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

tkinter如何做二级三级窗口

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

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

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

x
tkinter如何做二级三级窗口,和图片中一样登录后点击相应按钮转到三级窗口中,要时有类似代码格式发给我做个参考
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

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

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

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

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

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

btn_login = tk.Button(root, text="登录", command=login)
btn_login.pack(pady=20)
    
root.mainloop()

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

求最佳~
import tkinter as tk  
from tkinter import ttk  
  
def open_second_window():  
    second_window = tk.Toplevel(root)  
    second_window.title("二级窗口")  
      
    # 可以在这里添加更多的控件到二级窗口  
    ttk.Button(second_window, text="打开三级窗口", command=open_third_window).pack(pady=20)  
  
def open_third_window():  
    third_window = tk.Toplevel(root)  
    third_window.title("三级窗口")  
      
    # 可以在这里添加更多的控件到三级窗口  
    ttk.Label(third_window, text="这是三级窗口").pack(pady=20)  
  
# 创建主窗口  
root = tk.Tk()  
root.title("主窗口")  
  
# 登录按钮(在这个示例中,我们直接通过点击来模拟登录)  
login_button = ttk.Button(root, text="登录", command=open_second_window)  
login_button.pack(pady=20)  
  
# 启动事件循环  
root.mainloop()
然而,上述代码直接在点击登录按钮后打开了二级窗口,没有实际的登录逻辑。在真实的应用中,你可能需要添加一些输入框(例如用户名和密码)和验证逻辑。
如果你的意图是点击登录按钮后验证登录信息,然后根据验证结果打开相应的窗口,你可以修改open_second_window函数来包含这些逻辑。但是,为了保持示例的简洁性,我没有包含这些。
请注意,tkinter.ttk模块提供了更现代的控件,比如ttk.Button和ttk.Label,它们通常比标准的Tkinter控件有更好的外观和性能。但是,你也可以直接使用tkinter.Button和tkinter.Label,这取决于你的具体需求和偏好。
在上面的代码中,每个窗口(主窗口、二级窗口、三级窗口)都是独立的Tkinter窗口对象,它们可以独立地添加控件和事件处理函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


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

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

# 打开二级窗口
def open_second_window():
    second_window = tk.Toplevel(root)
    second_window.title("二级窗口")
    second_window.geometry("300x200")
    
    tk.Label(second_window, text="这是二级窗口").pack(pady=20)
    
    btn_to_third = tk.Button(second_window, text="打开三级窗口", command=open_third_window)
    btn_to_third.pack(pady=10)
    
    second_window.mainloop()

# 打开三级窗口
def open_third_window():
    third_window = tk.Toplevel(root)
    third_window.title("三级窗口")
    third_window.geometry("300x200")
    
    tk.Label(third_window, text="这是三级窗口").pack(pady=20)
    
    third_window.mainloop()

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

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

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

btn_login = tk.Button(root, text="登录", command=login)
btn_login.pack(pady=20)
    
root.mainloop()

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-8 07:52:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-17 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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