【发布时间】:2020-06-03 20:48:01
【问题描述】:
如果之前有人问过这个问题,我深表歉意,但我一直在尝试自己解决这个问题,并在我的同学的帮助下。他们似乎没有问题,但我无法到达Entry 的Value。我总是得到像<function StringVar.get at 0x0358E970> 或类似的奇怪字符串。我现在已经花了整整 5 个小时试图在互联网的帮助下解决这个问题。我希望有人可以帮助我理解这一点。
所以我有这个class 的功能,我可以在其中创建一个带有一个简单条目和一个简单按钮的 Tkinter 窗口。但是当我尝试获取textvariable 的值时,我没有得到string,但是我根本无法使用某种代码。我究竟做错了什么?还是有什么我没有做的?
import tkinter as tk
from tkinter import ttk
from tkinter import *
class StrWnd:
def __init__(self):
self.firstname = StringVar
def Register(self):
self.register = Toplevel(self.scr)
self.register.geometry("300x300")
self.register.title("Register")
Label(self.register, text="Vorname(Keine Nummern)").pack()
ttk.Entry(self.register, textvariable=self.firstname).pack()
ttk.Button(self.register, text="Submit", command=lambda: self.printValues()).pack()
def printValues(self):
print(self.firstname.get)
欢迎提供任何提示。
【问题讨论】:
-
它是
.get(),而不是.get。 -
@BryanOakley 我知道我没有括号,但这实际上是必要的。如果我添加括号,我会收到错误
print(self.firstname.get()) TypeError: get() missing 1 required positional argument: 'self' -
@BryanOakley 如果我也将 self 添加到括号中,我会收到错误
value = self._tk.globalgetvar(self._name) AttributeError: 'StrWnd' object has no attribute '_tk' -
StringVar也必须是StringVar()。 -
@BryanOakley 然后我收到错误
self._root = master._root() AttributeError: 'NoneType' object has no attribute '_root'
标签: python tkinter tkinter-entry