私は、オブジェクト指向の技術(これは私の最初のPythonプログラムでした)なしで素早く書いた既存のPython 3プログラムを持っています。それは私がそれをきれいにする時です、そして、私はクラスでtkinterを動作させることに問題があります。tkinterグリッドメソッドを使用してこのクラスを配置できないのはなぜですか?
ここでは簡単な例を示します。それだけで、クラスにttk.Entryウィジェットを配置しようとしているttk.Frameから継承されている:
import tkinter as tk
from tkinter import ttk
class MyClass(ttk.Frame):
def __init__(self, parent):
self.frame = ttk.Frame(parent)
# Entry widget
self.entValue = ttk.Entry(self.frame)
self.entValue.grid(column=0, row=0)
# tkinter init
root = tk.Tk()
# Make the class instance and place it
test = MyClass(root)
test.grid(column=0, row=0)
それは私に次のエラーを与える:
Traceback (most recent call last):
File "{path_to_code}/so.py", line 17, in <module>
test.grid(column=0, row=0)
File "{path_to_python}\Python35-32\lib\tkinter\__init__.py", line 2072, in grid_configure
self.tk.call(
AttributeError: 'MyClass' object has no attribute 'tk'
私は何をしないのですか?
はい、あなたは正しいです。そのミスについては申し訳ありません。 – FamousJameous
ちょうど私が必要としたもの。ありがとう:) – bitsmack