开始使用 Tkinter,是否可以 show/hide 带有复选按钮的标签?
started using Tkinter, is it possible to show/hide a Label with a Checkbutton?
只是在找一个例子,我知道它可以用按钮,但我想使用 Checkbutton 的不同状态(onvalue 和 offvalue)来显示和隐藏标签。
您可以使用复选按钮 属性 command
在每次用户更改复选按钮的状态时调用函数来实现此目的。
def show_hide_func():
if cb_val == 1:
your_label.pack_forget()
# if you are using grid() to create, then use grid_forget()
elif cb_val == 0:
your_label.pack()
cb_val = tk.IntVar()
tk.Checkbutton(base_window, text="Click me to toggle label", variable=cb_val , onvalue=1, offvalue=0, command=show_hide_func).pack()
有关复选按钮和其他 Tkinter 小部件的详细文档,请阅读 here
只需使用 comman=function
到 运行 隐藏 (pack_forget()
/grid_forget()
/place_forget()
) 的代码并再次显示 (pack()
/grid(...)
/place(...)
).
使用 pack()
可能是问题所在,因为它会再次显示,但会在其他小部件的末尾显示 - 因此您可以将 Label
保留在 Frame
中,这样就不会有其他小部件.或者你可以使用 pack(before=checkbox)
(或类似的选项)再次放在同一个地方(在 checkbox
之前)
Label
里面 Frame
import tkinter as tk
# --- functions ---
def on_click():
print(checkbox_var.get())
if checkbox_var.get():
label.pack_forget()
else:
label.pack()
# --- main ---
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
label = tk.Label(frame, text='Hello World')
label.pack()
checkbox_var = tk.BooleanVar()
checkbox = tk.Checkbutton(root, text="select", variable=checkbox_var, command=on_click)
checkbox.pack()
root.mainloop()
使用pack(before=checkbox)
import tkinter as tk
# --- functions ---
def on_click():
print(checkbox_var.get())
if checkbox_var.get():
label.pack_forget()
else:
label.pack(before=checkbox)
# --- main ---
root = tk.Tk()
label = tk.Label(root, text='Hello World')
label.pack()
checkbox_var = tk.BooleanVar()
checkbox = tk.Checkbutton(root, text="select", variable=checkbox_var, command=on_click)
checkbox.pack()
root.mainloop()
只是在找一个例子,我知道它可以用按钮,但我想使用 Checkbutton 的不同状态(onvalue 和 offvalue)来显示和隐藏标签。
您可以使用复选按钮 属性 command
在每次用户更改复选按钮的状态时调用函数来实现此目的。
def show_hide_func():
if cb_val == 1:
your_label.pack_forget()
# if you are using grid() to create, then use grid_forget()
elif cb_val == 0:
your_label.pack()
cb_val = tk.IntVar()
tk.Checkbutton(base_window, text="Click me to toggle label", variable=cb_val , onvalue=1, offvalue=0, command=show_hide_func).pack()
有关复选按钮和其他 Tkinter 小部件的详细文档,请阅读 here
只需使用 comman=function
到 运行 隐藏 (pack_forget()
/grid_forget()
/place_forget()
) 的代码并再次显示 (pack()
/grid(...)
/place(...)
).
使用 pack()
可能是问题所在,因为它会再次显示,但会在其他小部件的末尾显示 - 因此您可以将 Label
保留在 Frame
中,这样就不会有其他小部件.或者你可以使用 pack(before=checkbox)
(或类似的选项)再次放在同一个地方(在 checkbox
之前)
Label
里面 Frame
import tkinter as tk
# --- functions ---
def on_click():
print(checkbox_var.get())
if checkbox_var.get():
label.pack_forget()
else:
label.pack()
# --- main ---
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
label = tk.Label(frame, text='Hello World')
label.pack()
checkbox_var = tk.BooleanVar()
checkbox = tk.Checkbutton(root, text="select", variable=checkbox_var, command=on_click)
checkbox.pack()
root.mainloop()
使用pack(before=checkbox)
import tkinter as tk
# --- functions ---
def on_click():
print(checkbox_var.get())
if checkbox_var.get():
label.pack_forget()
else:
label.pack(before=checkbox)
# --- main ---
root = tk.Tk()
label = tk.Label(root, text='Hello World')
label.pack()
checkbox_var = tk.BooleanVar()
checkbox = tk.Checkbutton(root, text="select", variable=checkbox_var, command=on_click)
checkbox.pack()
root.mainloop()