tkinter 切换按钮框架没有阻碍?
tkinter Toggle button frame not hinding?
我想用 tkinter
制作一个框架切换按钮。但是我的代码似乎无法正常运行,这就是我的意思,我的代码似乎正在添加一个框架,但由于某种原因它没有删除该框架。
我的代码:
import tkinter as tk
def toggle():
if toggle_btn.config('text')[-1] == 'add frame':
x = tk.Frame(Tk,width=5,height=4,bg='black')
x.pack()
else:
print('the frame is turned off')
x.pack_forget()
Tk = tk.Tk()
toggle_btn = tk.Button(text="add frame", width=12, command=toggle)
toggle_btn.pack()
Tk.mainloop()
首先,由于行 if toggle_btn.config('text')[-1] == 'add frame':
检查按钮的文本是否为“Add Frame”并且您没有更改按钮文本,所以语句的 else 部分永远不会 运行.这可以通过更改 if 语句中按钮的文本来解决。例如
if toggle_btn.config('text')[-1] == 'add frame':
x = tk.Frame(Tk,width=5,height=4,bg='black')
toggle_btn.config(text='Delete Frame') #Changes the button text to 'Delete Frame'
x.pack()
接下来,else语句中的x没有定义,所以会报错。您可以简单地通过在函数外部定义 x 来解决这个问题,在 Tk = tk.Tk()
下,然后像这样将其设置为切换函数内的全局变量。
def toggle():
global x
if toggle_btn.config('text')[-1] == 'add frame':
toggle_btn.config(text='Delete Frame')
x.pack()
else:
print('the frame is turned off')
x.pack_forget()
Tk = tk.Tk()
x = tk.Frame(Tk,width=5,height=4,bg='black')
...
最后,当帧被删除时,您想将标签改回 'add frame'。
import tkinter as tk
def toggle():
global x
if toggle_btn.config('text')[-1] == 'add frame':
toggle_btn.config(text='Delete Frame')
x.pack()
else:
print('the frame is turned off')
toggle_btn.config(text='add frame')
x.pack_forget()
Tk = tk.Tk()
x = tk.Frame(Tk,width=5,height=4,bg='black')
toggle_btn = tk.Button(text="add frame", width=12, command=toggle)
toggle_btn.pack()
Tk.mainloop()
我想用 tkinter
制作一个框架切换按钮。但是我的代码似乎无法正常运行,这就是我的意思,我的代码似乎正在添加一个框架,但由于某种原因它没有删除该框架。
我的代码:
import tkinter as tk
def toggle():
if toggle_btn.config('text')[-1] == 'add frame':
x = tk.Frame(Tk,width=5,height=4,bg='black')
x.pack()
else:
print('the frame is turned off')
x.pack_forget()
Tk = tk.Tk()
toggle_btn = tk.Button(text="add frame", width=12, command=toggle)
toggle_btn.pack()
Tk.mainloop()
首先,由于行 if toggle_btn.config('text')[-1] == 'add frame':
检查按钮的文本是否为“Add Frame”并且您没有更改按钮文本,所以语句的 else 部分永远不会 运行.这可以通过更改 if 语句中按钮的文本来解决。例如
if toggle_btn.config('text')[-1] == 'add frame':
x = tk.Frame(Tk,width=5,height=4,bg='black')
toggle_btn.config(text='Delete Frame') #Changes the button text to 'Delete Frame'
x.pack()
接下来,else语句中的x没有定义,所以会报错。您可以简单地通过在函数外部定义 x 来解决这个问题,在 Tk = tk.Tk()
下,然后像这样将其设置为切换函数内的全局变量。
def toggle():
global x
if toggle_btn.config('text')[-1] == 'add frame':
toggle_btn.config(text='Delete Frame')
x.pack()
else:
print('the frame is turned off')
x.pack_forget()
Tk = tk.Tk()
x = tk.Frame(Tk,width=5,height=4,bg='black')
...
最后,当帧被删除时,您想将标签改回 'add frame'。
import tkinter as tk
def toggle():
global x
if toggle_btn.config('text')[-1] == 'add frame':
toggle_btn.config(text='Delete Frame')
x.pack()
else:
print('the frame is turned off')
toggle_btn.config(text='add frame')
x.pack_forget()
Tk = tk.Tk()
x = tk.Frame(Tk,width=5,height=4,bg='black')
toggle_btn = tk.Button(text="add frame", width=12, command=toggle)
toggle_btn.pack()
Tk.mainloop()