Вы можете попробовать как это
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
def chk_checked():
global txt
if chk_state.get():
txt = ScrolledText(window, height=15, width=35)
txt.insert(tk.END, 'Paste Normal Entries Here...')
txt.pack(anchor='nw', padx=50, pady=50)
else:
txt.pack_forget()
window = tk.Tk()
chk_state = tk.BooleanVar()
chk_state.set(False) # set check state
chk = tk.Checkbutton(window, text='Normal Entries', var=chk_state, command=chk_checked)
chk.place(x=0, y=0)
txt = None
window.mainloop()
Это не лучший способ сделать это, может быть, вы можете создать класс, я думаю, что это было бы лучше.
Проблемас вашим кодом то, что каждый раз, когда вы нажимаете CheckButton
, функция chk_checked(event)
создает новый ScrolledText
, а после работы над ним вместо этого работает с ScrolledText
, который был создан ранее.Вы должны объявить global variable
(вместо local variable
), в котором вы храните ScrolledText
, который хотите использовать, и работать только с ним