我试图使用Entry字段来获得手动输入,然后处理这些数据.

我找到的所有资料都声称我应该使用get()函数,但我还没有找到一个简单的迷你示例,我无法让它工作.

我希望有人能告诉我我做错了什么.这里有一个小文件:

from tkinter import *


master = Tk()

Label(master, text="Input: ").grid(row=0, sticky=W)

entry = Entry(master)
entry.grid(row=0, column=1)

content = entry.get()
print(content)  # does not work

mainloop()

这给了我一个可以输入的Entry字段,但一旦输入数据,我就无法对其进行任何处理.

我怀疑我的代码不起作用,因为最初,entry是空的.但是,一旦输入数据,我该如何访问它呢?

推荐答案

看起来您可能会对何时运行命令感到困惑.在您的示例中,您在GUI有机会显示在屏幕上之前调用get方法(这发生在您调用mainloop之后).

try 添加一个调用get方法的按钮.如果您将应用程序作为一个类来编写,这会容易得多.例如:

import tkinter as tk

class SampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.entry = tk.Entry(self)
        self.button = tk.Button(self, text="Get", command=self.on_button)
        self.button.pack()
        self.entry.pack()

    def on_button(self):
        print(self.entry.get())

app = SampleApp()
app.mainloop()

运行程序,输入条目小部件,然后单击按钮.

Python-3.x相关问答推荐

根据收件箱内部的值以行降序的特定顺序重新排序列

需要使用regex匹配字符串的帮助,直到最后一次出现开闭括号,开闭括号中的值是可选的

正则表达式匹配并提取括号前的单词

Python:字典和列表:在列表字典中搜索子列表的有效方法

将f-字符串放置在f-字符串内

Numba编译时间呈指数级增长--可以像C编译器一样配置优化级别吗?

我想判断df_entry_log[AM_PM],并根据测试填充列

PANDAS中当前数据帧的匹配与更新

如何获取自定义文件上传路径的对象ID?

Pandas groupby 然后 for each 组添加新行

删除Pandas 数据框行不起作用

使用 pandas 进行多类分类的总体准确度

python tkInter 浏览文件夹按钮

两个字符串之间的正则表达式匹配?

ValueError:FixedLocator 位置的数量 (5),通常来自对 set_ticks 的调用,与刻度标签的数量 (12) 不匹配

在数据类中创建类变量的正确方法

使用 pytest.fixture 返回模拟对象的正确方法

计算两个文件的行差异的最有效方法是什么?

Selenium Python - 处理没有这样的元素异常

为什么异步库比这个 I/O 绑定操作的线程慢?