gpt4 book ai didi

python - 如何在 Tkinter 中显示/隐藏小部件?

转载 作者:太空狗 更新时间:2023-10-30 02:41:54 28 4
gpt4 key购买 nike

我正在尝试创建一个程序,在给定一系列用户输入的情况下执行某个功能。一些用户输入仅在某些情况下是必需的,如果可能的话,我希望仅在选中 Checkbutton 时显示这些输入值的输入框和标签,表明存在需要这些输入的情况。我不确定该怎么做:

  • 将我要添加的标签和输入框放在已存在的行之间。

  • 取消选中 Checkbutton 时“隐藏”Labels 和 Entry 框,而不destroy它们,以便在选中 Checkbutton 时它们可以再次显示而不会丢失任何已输入的数据重新选择。

    • 示例:我选择复选按钮,在出现的新框中输入数据,然后取消选择复选按钮(使这些框不再显示)。如果我随后重新选择 Checkbutton,我上次选择 Checkbutton 时输入的数据应该仍然存在。
  • 如果 Checkbutton 在之前取消选择后重新选择,则“显示”之前“隐藏”的相同标签和输入框。

我不知道这样的事情是否可能,但如果不可能,请告诉我。另外,我知道我可以简单地将相关输入框的 state 设置为 DISABLED 而 Checkbutton 被取消,但如果可能的话,我更希望这些框不出现这样他们的存在不会混淆不熟悉需要额外输入的情况的用户。

如果这是相关的,我在 Windows 10 专业版上使用 Python 2.7.9、Anaconda 2.2.0(64 位)和 Tkinter 版本 81008。如果我遗漏了任何有用的信息,请随时索取更多信息。预先感谢您提供的任何帮助。

最佳答案

我想你需要 grid_remove()

来自 http://www.tkdocs.com/tutorial/grid.html :

The "forget" method of grid, taking as arguments a list of one or more slave widgets, can be used to remove slaves from the grid they're currently part of. This does not destroy the widget altogether, but takes it off the screen, as if it had not been gridded in the first place. You can grid it again later, though any grid options you'd originally assigned will have been lost.

The "remove" method of grid works the same, except that the grid options will be remembered.

丑陋的例子如下。尝试使用网格选项和条目文本,看看它们是如何保存的。

def toggle_entry():
global hidden
if hidden:
e.grid()
else:
e.grid_remove()
hidden = not hidden

hidden = False
root = tk.Tk()
e = tk.Entry(root)
e.grid(row=0, column=1)
tk.Button(root, text='Toggle entry', command=toggle_entry).grid(row=0, column=0)
root.mainloop()

关于python - 如何在 Tkinter 中显示/隐藏小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086482/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com