Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter StringVar错误_Python_String_Tkinter_Converter_Tk - Fatal编程技术网

Python Tkinter StringVar错误

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()

您好,我发现这段代码有一个错误,没有定义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()
        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 *