【问题标题】:How do I constantly get the value of a Tkinter entry box without a button?如何在没有按钮的情况下不断获取 Tkinter 输入框的值?
【发布时间】:2021-12-27 02:39:36
【问题描述】:

我希望能够在没有按钮的情况下重复获取 tkinter 中输入框的值。例如,如果输入框中的类型为“0987654321”,则可以保存另一个变量,这些值会随着输入框中输入的内容不断更新。

【问题讨论】:

  • 这听起来是个坏主意——您将收到各种无意义的值,而用户正在输入一个多位数的数字。但是如果你必须这样做,一种方法是编写一个函数,在 Entry 上调用 .get() 并对值做任何你想做的事情 - 你调用这个函数一次,它会安排另一个调用它自己(可能是 100-500 毫秒稍后)通过.after()

标签: python python-3.x tkinter tkinter-entry


【解决方案1】:

我相信这就是您正在寻找的(参见下面的示例代码)。

我们在这里所做的是跟踪条目小部件的值,如果发生更改,它会调用函数以用新值替换该标签。 一定要检查我的代码中的 cmets - 它可以更好地分解它。


如果我的例子没有意义,这里是另一个链接。

https://www.tutorialspoint.com/what-are-the-arguments-to-tkinter-variable-trace-method-callbacks

以下是 *args 和 *kwargs

的一些更好的示例

https://realpython.com/python-kwargs-and-args/

#Entry StringVar
year_var = tk.StringVar()
#Entry box and placement
tk.Entry(root, text=(year_var), justify="center").place(x=150, y=250, width="100", anchor="center")

#Fucntion that will be called when entry is changed
def function_called(*args):
    tk.Label(root, text=year_var.get(), justify="center").place(x=150, y=320, width="100", anchor="center")

#Tracing the entry and calling the above function 
year_var.trace("w", function_called)

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2019-02-06
    • 2022-11-13
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多