python - 从不同的功能单击按钮时获取 tkinter 条目的值
问题描述
我正在尝试从作为我的输入的输入框中获取一个值,并且我希望其中写入的任何内容都可用于在按下按钮时进行处理。这是我的代码:
from tkinter import *
import tkinter as tk
class GUI(Tk):
def __init__(self):
super(GUI, self).__init__()
tk.Label(self, text="Input").grid(row=0)
self.input = tk.Entry(self).grid(row=0, column=1)
tk.Button(self, text="Start", command=self.start_button).grid(row=5, column=1)
def start_button(self):
print(self.input.get())
gui = GUI()
gui.mainloop()
每当我尝试按下按钮时,它都会显示 None 类型没有属性“get”。这是回溯:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files (x86)\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "D:/Projects/excel_reader/test.py", line 15, in start_button
print(self.input.get())
AttributeError: 'NoneType' object has no attribute 'get'
我尝试将 TK 作为我的 GUI 类的子类删除,删除 super() 调用并尝试全局声明所有变量,但这也不起作用。我对 Python GUI 很陌生。
解决方案
问题原来是我为它定义网格的方式。我不知道为什么,但是现在可以通过更改 this->input = tk.Entry(root).grid(row=0, column=1)
对此:
global input
input = tk.Entry(self)
input.grid(row=0, column=1)
推荐阅读
- python - 在计算中无法将 dtype int 识别为 int
- swift - WhirlyGlobe/Maply - GeoJSONSource 错误
- google-apps-script - 如何使谷歌表单在部分可重复以添加更多答案
- c - 生成 UUID 以响应 Kafka Producer 发送的消息
- ios - 点击链接后在谷歌地图应用中显示特定地点
- c++ - 如何在 MFC 应用程序中找到 SD 卡的 CID
- angular - 如何有条件地添加 Angular Material 指令
- jquery - dataTables 恢复 iDisplayLength
- go - golang vnc连接错误 - 内存不足
- c# - Unity Mathf.Lerp 只执行那些