Python Tkinter StringVar错误
您好,我发现这段代码有一个错误,没有定义StringVar(),这可能是一件小事,但我对tkinter没有太多经验,希望得到一些帮助,谢谢 这是我的密码:Python Tkinter StringVar错误,python,string,tkinter,converter,tk,Python,String,Tkinter,Converter,Tk,您好,我发现这段代码有一个错误,没有定义StringVar(),这可能是一件小事,但我对tkinter没有太多经验,希望得到一些帮助,谢谢 这是我的密码: import tkinter as tk class Converter1(tk.Tk): def __init__(self): tk.Tk.__init__(self) self.entry = tk.Entry(self) self.variable = StringVar()
import tkinter as tk
class Converter1(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self)
self.variable = StringVar()
self.variable.set("Miles to Kilometers") # default dropdown menu value
self.menu = tk.OptionMenu(self, variable, "Miles to Kilometers", "Kilometers to Miles")
self.button = tk.Button(self, text="Convert!", command=self.convertMK)
self.button.pack()
self.menu.pack()
self.button.pack()
self.entry.pack()
def convtertMK(self): # converts the miles and kilometers using the dropdown menu
if var.get() == "Miles to Kilometers":
print(int(self.entry.get()) * 1.6093)
else:
print(int(self.entry.get()) / 1.6093)
converter = Converter1()
以下是错误:
Traceback (most recent call last):
File "/Users/MaxBookPro/Desktop/test.py", line 25, in <module>
converter = Converter1()
File "/Users/MaxBookPro/Desktop/test.py", line 8, in __init__
self.variable = Variable1
NameError: global name 'Variable1' is not defined
回溯(最近一次呼叫最后一次):
文件“/Users/MaxBookPro/Desktop/test.py”,第25行,在
转换器=转换器1()
文件“/Users/MaxBookPro/Desktop/test.py”,第8行,在__
self.variable=Variable1
NameError:未定义全局名称“Variable1”
再次感谢。您需要指定
tk.StringVar()
,就像您为其他所有指定的tk函数所做的那样
self.variable = tk.StringVar()
这是因为您刚刚执行了导入tk
。或者,您可以通过以下两行中的一行导入所需的函数,甚至导入所有函数:
from tk import StringVar
from tk import *