Вы можете сделать виджет видимым, используя любой из менеджеров геометрии: пакет, сетка и место.Все это также может отменить отображение виджета, чтобы он не отображался.Я думаю, что проще всего связать флажок с функцией обратного вызова, которая отображает или удаляет виджет.
Будьте осторожны, так как виджеты отображения и отображения могут привести к тому, что содержащийся виджет изменит свой размер.
from tkinter import *
root = Tk()
root.geometry('300x200')
'''----------------frame Discharge calculation-------------------'''
discharge = BooleanVar()
discharge.set(False)
def display_calc():
if discharge.get() == True:
frame3.place(x=60, y=100)
else:
frame3.place_forget()
dischargeBut = Checkbutton(root, text="calculate discharge",
variable=discharge, command=display_calc)
dischargeBut.place(x=60, y=40)
# The Discharge calculation widget
frame3 = Frame(root)
Label(frame3, text='Discharge calculation').pack()
root.mainloop()
Также;использование place()
почти всегда плохой выбор.Прочитайте о grid()
и pack()
, так как их легче использовать, когда ваш графический интерфейс становится более сложным.