tkinter:动态创建和删除条目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tkinter:动态创建和删除条目相关的知识,希望对你有一定的参考价值。
我正在使用tkinter为一些Python脚本创建一个小GUI。对于这个GUI我需要一个名为Combobox
的combo
有三个选项:
"none"
(用户想要提交数据)"constant"
(用户只想提交一个值)"adjustable"
(用户希望提交多个值)
根据在combo
中所做的选择,应该出现不同数量的委托。第一个选项应该不显示任何条目(并删除所有“剩余”的命令),第二个选项应该只显示一个条目而第三个应该显示两个条目。对我来说,创建这些托管没有问题,但我不知道如何让它们消失。一旦创建它们,它们一直保持到GUI关闭。
我试过这样的事情:
import tkinter as tk
master = tk.Tk()
var1 = tk.StringVar()
var2 = tk.StringVar()
def submit():
if choice.get() == "none": # all entry boxes schould disappear
entry1.destroy()
entry2.destroy()
if choice.get() == "constant": # only 1 entry box schould be visible
entry1 = tk.Entry(master, textvariable = var1)
entry1.grid(column = 0, row = 1)
entry2.destroy()
if choice.get() == "adjustable": # all entry boxes should be visible
entry1 = tk.Entry(master, textvariable = var1)
entry1.grid(column = 0, row = 1)
entry2 = tk.Entry(master, textvariable = var1)
entry2.grid(column = 0, row = 2)
choice = tk.StringVar(value = "none")
combo = ttk.Combobox(master, textvariable = choice, state = "readonly")
combo["values"] = ("none", "constant", "adjustable")
combo.grid(column = 0, row = 0)
action = tk.Button(master, text = "confirm", command = submit)
action.grid(column=1, row=0)
master.mainloop()
但正如我之前所说,一旦创建了一个条目,它就不再消失了。我也试过entry.grid_forget()
insaz的entry.destroy()
,但这也没有用。
我还试图在qazxsw poi之外宣布qazxsw poi和qazxsw poi,但后来我不知道如何在它们被摧毁后重新创建这些。
答案
感谢jasonharper的帮助,我在另一个脚本工作时找到了解决方案。代码看起来应该是这样的:
entry1
现在所有的托管都在需要时被删除或创建。要删除在entrys上的文本你只需要添加entry1
。我希望这也能帮助别人。
以上是关于tkinter:动态创建和删除条目的主要内容,如果未能解决你的问题,请参考以下文章