4

こんにちは、このコードで 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

再度、感謝します。

4

1 に答える 1

7

tk.StringVar()指定した他のすべての tk 関数で行ったように、を指定する必要があります。

self.variable = tk.StringVar()

これは、import tk. 別の方法として、次の 2 つの行のいずれかを使用して、必要な関数だけをインポートすることも、すべての関数をインポートすることもできます。

from tk import StringVar
from tk import *
于 2013-11-14T16:47:00.830 に答える