私はPythonを学んでいて、tkinterのクラスデコレータのように見える問題に直面しています。Frameで装飾しようとしない限り、tkinterを動作させることができます。以下のコードでは、エラーもウィンドウも表示されません。何らかの理由で、私が定義するクラスは決して定義されません。以下は私のコードです。その下には、tkinterに関する同様の質問に基づいて私が行ったテストがあります。
>>> from tkinter import *
import tkinter
class Apples:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.button = Button(frame, text="Quit", fg="blue", command=frame.quit)
self.button.pack(side=LEFT)
self.hellos = Button(frame, text="Hello", command=self.say_hello)
self.hellos.pack(side=LEFT)
def say_hello(self):
print("Hello World!")
root = Tk()
app = Apples(root)
root.mainloop()
ウィンドウは表示されません。エラーはありません。だから私はクラスをチェックします...
>>> test = Apples(root)
Traceback (most recent call last):
File "<pyshell#54>", line 1, in <module>
test = Apples(root)
NameError: name 'Apples' is not defined
>>>
同様の質問をPythonGUIでボタンを作成して見つけ、 pythonManからコードを試しました。私はまだ同じクラス宣言の問題に直面しています。
>>> from tkinter import *
class Application(Frame):
"""A GUI application with three button"""
def __init__(self,master):
self.master = master
self.create_widgets()
def create_widgets(self):
#"""Create three buttons"""
#Create first buttom
btn1 = Button(self.master, text = "I do nothing")
btn1.pack()
#Create second button
btn2 = Button(self.master, text = "T do nothing as well")
btn2.pack()
#Create third button
btn3=Button(self.master, text = "I do nothing as well as well")
btn3.pack()
root = Tk()
root.title("Lazy Button 2")
root.geometry("500x500")
app = Application(root)
root.mainloop()
>>> Application
Traceback (most recent call last):
File "<pyshell#58>", line 1, in <module>
Application
NameError: name 'Application' is not defined
>>>
何かが正しく宣言されていないと思いますが、構文エラーは発生していません。どんな助けでも大歓迎です。