我是python的新手,我试图做一个测验,其中用户选中一个复选框,然后通过按一个按钮删除那些复选框并创建其他复选框。问题是我找不到方法。
我已经尝试通过键入按钮将要运行的命令的名称,然后输入-“ .delete,.remove,.del,.destroy”。 我尝试了所有这些方法,但也许我用错了。
我不想禁用它们,因为我希望它们消失并显示为一个按钮。
from tkinter import *
#Screen
screen = Tk()
screen.title("Prueba n° 1.000.000.000")
screen.geometry("500x250")
#Functions
def b_next():
#I don't know what to write here
def del_cb():
quit()
#1° Questions
c_1 = Checkbutton(text = "1° Option")
c_1.place(y = 20, x = 125)
c_2 = Checkbutton(text = "2° Option")
c_2.place(y = 40, x = 125)
c_3 = Checkbutton(text = "3° Option")
c_3.place(y = 60, x = 125)
c_4 = Checkbutton(text = "4° Option")
c_4.place(y = 80, x = 125)
c_5 = Checkbutton(text = "5° Option")
c_5.place(y = 100, x = 125)
#2° Questions
c_6 = Checkbutton(text = "6° Option")
c_6.place(y = 20, x = 125)
c_7 = Checkbutton(text = "7° Option")
c_7.place(y = 40, x = 125)
c_8 = Checkbutton(text = "8° Option")
c_8.place(y = 60, x = 125)
c_9 = Checkbutton(text = "9° Option")
c_9.place(y = 80, x = 125)
c_10 = Checkbutton(text = "10° Option")
c_10.place(y = 100, x = 125)
#Buttons
b_next = Button(text = "Siguiente Pregunta", command = b_next).place(y = 125, x = 125)
b_del = Button(text = "Borrar", command = del_cb).place(y = 155, x = 125)
screen.resizable (False, False)
screen.mainloop()
希望您能为这个小问题提供帮助!
P.D:我不太会用英语写,因此可能存在一些语法错误,对此感到抱歉!
答案 0 :(得分:1)
您可以使用.pack_forget()隐藏tkinter小部件。 您可以使用.pack()使tkinter小部件重新出现。
例如隐藏“ c_9”:
c_9.pack_forget()
例如揭示“ c_9”:
c_9.pack()
要使按钮隐藏或显示诸如'c_9'之类的tkinter窗口小部件,您可以使按钮的命令成为使用.pack()或.pack_forget()来隐藏窗口小部件的子例程。
例如:
下面的按钮'b_hide_c_9'在单击时运行子程序'hide_c_9'。
子程序'hide_c_9'使用.pack_forget()隐藏'c_9':
b_hide_c_9 = Button(text = "Hide c_9", command = hide_c_9).place(y = 155, x = 125)
def hide_c_9():
c_9.pack_forget()
例如:
点击下面的按钮'b_reveal_c_9',运行子程序'reveal_c_9'。
子程序'reveal_c_9'使用.pack_()显示'c_9':
b_reveal_c_9 = Button(text = "Reveal c_9", command = reveal_c_9).place(y = 155, x = 125)
def reveal_c_9():
c_9.pack()