tkinter:动态创建和删除条目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tkinter:动态创建和删除条目相关的知识,希望对你有一定的参考价值。

我正在使用tkinter为一些Python脚本创建一个小GUI。对于这个GUI我需要一个名为Comboboxcombo有三个选项:

  1. "none"(用户想要提交数据)
  2. "constant"(用户只想提交一个值)
  3. "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:动态创建和删除条目的主要内容,如果未能解决你的问题,请参考以下文章

从 Tkinter Python 中的浏览按钮设置条目值

通过asp.net中的代码向网页添加按钮并删除动态数据库条目

如何为 TKINTER 中的条目总和定位 def

如何将文件位置存储到条目窗口小部件中--Tkinter

Tkinter - 双击获取条目文本(for循环)

是否有在 tkinter 中切换“Tab”和“Enter”按钮的功能?