checkbutton.destroy()
时间: 2024-06-01 16:12:04 浏览: 13
This Python code will destroy a Checkbutton widget in a GUI application. The Checkbutton widget is one of the Tkinter widgets used to create graphical user interfaces. The destroy() method is used to remove the Checkbutton widget from the GUI. Once the widget is destroyed, it cannot be accessed or interacted with anymore.
相关问题
用tkinter创建两级窗口。第一级窗口有5行:第一行为标签一;第二行设三个checkbutton1、2、3;第三行为标签二;第四行设有三个checkbutton4、5、6,第五行为一个确认按钮跳转到二级窗口;第二级窗口有5行:第一行为标签三;第二行根据一级窗口中checkbutton1、2、3的勾选情况对应列出checkbutton11、12、13,checkbutton21、22、23,checkbutton31、32、33;第三行为标签四;第四行根据一级窗口中checkbutton4、5、6的勾选情况对应列出checkbutton41、42、43,checkbutton51、52、53,checkbutton61、62、63;第五行为一个确认按钮print所有二级窗口中checkbutton的布尔值。
好的,以下是使用Tkinter创建两级窗口的代码实现:
```python
import tkinter as tk
class FirstLevelWindow:
def __init__(self):
self.window = tk.Tk()
self.window.title('第一级窗口')
self.label1 = tk.Label(self.window, text='标签一')
self.label1.grid(row=0, column=0, columnspan=3, pady=5)
self.var1 = tk.BooleanVar()
self.var2 = tk.BooleanVar()
self.var3 = tk.BooleanVar()
self.checkbutton1 = tk.Checkbutton(self.window, text='选项一', variable=self.var1)
self.checkbutton1.grid(row=1, column=0)
self.checkbutton2 = tk.Checkbutton(self.window, text='选项二', variable=self.var2)
self.checkbutton2.grid(row=1, column=1)
self.checkbutton3 = tk.Checkbutton(self.window, text='选项三', variable=self.var3)
self.checkbutton3.grid(row=1, column=2)
self.label2 = tk.Label(self.window, text='标签二')
self.label2.grid(row=2, column=0, columnspan=3, pady=5)
self.var4 = tk.BooleanVar()
self.var5 = tk.BooleanVar()
self.var6 = tk.BooleanVar()
self.checkbutton4 = tk.Checkbutton(self.window, text='选项四', variable=self.var4)
self.checkbutton4.grid(row=3, column=0)
self.checkbutton5 = tk.Checkbutton(self.window, text='选项五', variable=self.var5)
self.checkbutton5.grid(row=3, column=1)
self.checkbutton6 = tk.Checkbutton(self.window, text='选项六', variable=self.var6)
self.checkbutton6.grid(row=3, column=2)
self.confirm_button = tk.Button(self.window, text='确认', command=self.open_second_level_window)
self.confirm_button.grid(row=4, column=0, columnspan=3, pady=10)
def open_second_level_window(self):
self.window.destroy()
SecondLevelWindow(self.var1.get(), self.var2.get(), self.var3.get(), self.var4.get(), self.var5.get(), self.var6.get())
def run(self):
self.window.mainloop()
class SecondLevelWindow:
def __init__(self, var1_value, var2_value, var3_value, var4_value, var5_value, var6_value):
self.window = tk.Tk()
self.window.title('第二级窗口')
self.label3 = tk.Label(self.window, text='标签三')
self.label3.grid(row=0, column=0, columnspan=3, pady=5)
self.var11 = tk.BooleanVar(value=var1_value)
self.var12 = tk.BooleanVar(value=var2_value)
self.var13 = tk.BooleanVar(value=var3_value)
self.checkbutton11 = tk.Checkbutton(self.window, text='选项一', variable=self.var11)
self.checkbutton11.grid(row=1, column=0)
self.checkbutton12 = tk.Checkbutton(self.window, text='选项二', variable=self.var12)
self.checkbutton12.grid(row=1, column=1)
self.checkbutton13 = tk.Checkbutton(self.window, text='选项三', variable=self.var13)
self.checkbutton13.grid(row=1, column=2)
self.label4 = tk.Label(self.window, text='标签四')
self.label4.grid(row=2, column=0, columnspan=3, pady=5)
self.var41 = tk.BooleanVar(value=var4_value)
self.var42 = tk.BooleanVar(value=var5_value)
self.var43 = tk.BooleanVar(value=var6_value)
self.checkbutton41 = tk.Checkbutton(self.window, text='选项四', variable=self.var41)
self.checkbutton41.grid(row=3, column=0)
self.checkbutton42 = tk.Checkbutton(self.window, text='选项五', variable=self.var42)
self.checkbutton42.grid(row=3, column=1)
self.checkbutton43 = tk.Checkbutton(self.window, text='选项六', variable=self.var43)
self.checkbutton43.grid(row=3, column=2)
self.confirm_button = tk.Button(self.window, text='确认', command=self.print_checkbutton_values)
self.confirm_button.grid(row=4, column=0, columnspan=3, pady=10)
def print_checkbutton_values(self):
print(f'选项一:{self.var11.get()}')
print(f'选项二:{self.var12.get()}')
print(f'选项三:{self.var13.get()}')
print(f'选项四:{self.var41.get()}')
print(f'选项五:{self.var42.get()}')
print(f'选项六:{self.var43.get()}')
def run(self):
self.window.mainloop()
if __name__ == '__main__':
first_level_window = FirstLevelWindow()
first_level_window.run()
```
这个程序实现了要求的功能,第一级窗口中有5行,第二级窗口中有5行,并且第二级窗口的checkbutton根据第一级窗口中的勾选情况动态生成。当第一级窗口中的确认按钮被点击时,程序会关闭第一级窗口,打开第二级窗口;当第二级窗口中的确认按钮被点击时,程序会打印所有checkbutton的布尔值。
这个界面要求是有登录注册,要求记住密码
好的,这是一个带有登录和注册功能的 Tkinter 界面示例代码,它可以记住密码:
```python
import tkinter as tk
class LoginApp:
def __init__(self, master):
self.master = master
master.title("Login")
# 创建控件
self.label_username = tk.Label(master, text="Username:")
self.label_password = tk.Label(master, text="Password:")
self.entry_username = tk.Entry(master)
self.entry_password = tk.Entry(master, show="*")
self.checkbox_remember = tk.Checkbutton(master, text="Remember Me", command=self.remember_password)
self.button_login = tk.Button(master, text="Login", command=self.login)
self.button_register = tk.Button(master, text="Register", command=self.register)
# 布局控件
self.label_username.grid(row=0, column=0)
self.label_password.grid(row=1, column=0)
self.entry_username.grid(row=0, column=1)
self.entry_password.grid(row=1, column=1)
self.checkbox_remember.grid(columnspan=2, sticky=tk.W)
self.button_login.grid(row=2, column=0)
self.button_register.grid(row=2, column=1)
# 初始化用户名和密码
self.username = tk.StringVar()
self.password = tk.StringVar()
self.username.set("")
self.password.set("")
self.entry_username.focus_set()
# 如果记住密码,恢复用户名和密码
if self.get_remember_password():
self.username.set(self.get_saved_username())
self.password.set(self.get_saved_password())
def remember_password(self):
remember_me = self.checkbox_remember.var.get()
if remember_me:
self.save_username_password()
else:
self.delete_saved_username_password()
def save_username_password(self):
with open("login.txt", "w") as f:
f.write(f"{self.username.get()}\n{self.password.get()}")
def delete_saved_username_password(self):
with open("login.txt", "w") as f:
f.write("")
def get_remember_password(self):
try:
with open("login.txt", "r") as f:
return bool(f.read())
except FileNotFoundError:
return False
def get_saved_username(self):
with open("login.txt", "r") as f:
return f.readline().strip()
def get_saved_password(self):
with open("login.txt", "r") as f:
f.readline()
return f.readline().strip()
def login(self):
# 验证用户名和密码
if self.entry_username.get() == self.get_saved_username() and self.entry_password.get() == self.get_saved_password():
self.master.destroy()
# 登录成功,进入主界面
app = tk.Tk()
app.title("Main App")
tk.Label(app, text="Welcome!").pack()
app.mainloop()
else:
# 登录失败
tk.messagebox.showerror("Error", "Invalid username or password.")
def register(self):
# 进入注册界面
self.master.destroy()
app = tk.Tk()
app.title("Register")
tk.Label(app, text="Username:").grid(row=0, column=0)
tk.Label(app, text="Password:").grid(row=1, column=0)
username_entry = tk.Entry(app)
password_entry = tk.Entry(app, show="*")
username_entry.grid(row=0, column=1)
password_entry.grid(row=1, column=1)
def on_register():
# 保存新的用户名和密码
with open("login.txt", "w") as f:
f.write(f"{username_entry.get()}\n{password_entry.get()}")
app.destroy()
# 注册成功,进入主界面
app = tk.Tk()
app.title("Main App")
tk.Label(app, text="Welcome!").pack()
app.mainloop()
tk.Button(app, text="Register", command=on_register).grid(columnspan=2)
app.mainloop()
root = tk.Tk()
app = LoginApp(root)
root.mainloop()
```
上面的代码会在当前目录下创建一个名为 "login.txt" 的文件,用于保存用户名和密码。如果记住密码,则在下次登录时自动恢复用户名和密码。注意:这里的保存密码方式不够安全,只是为了演示如何实现记住密码功能。在实际应用中,应该使用更安全的加密方式保存密码。
相关推荐
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)