3

UI と UI 機能を 2 つのモジュールに分離することに関して、tkinter に問題があります。これが私のコードです。

1-view.py

from tkinter import *

class View():
    def __init__(self,parent):
        self.button=Button(parent,text='click me').pack()

2.controller.py

from tkinter import *
from view import *

class Controller:
    def __init__(self,parent):
        self.view1=View(parent)
        self.view1.button.config(command=self.callback)

    def callback(self):
        print('Hello World!')


root=Tk()
app=Controller(root)
root.mainloop()

controller.py を実行すると、次のエラーが発生します。

AttributeError: 'NoneType' オブジェクトに属性 'config' がありません

なにか提案を?

また、別のモジュールでコールバック関数を使用するためにラムダを使用しようとしましたが、機能しませんでした。

前もって感謝します

4

2 に答える 2

1

view.py では、次のように呼び出しています。

self.button=Button(parent,text='click me').pack()

pack 関数は、self.button に割り当てたい Button オブジェクトを返さないため、後で AttributeError が発生します。やったほうがいい:

self.button = Button(parent, text='click me')
self.button.pack()
于 2013-07-11T17:26:04.150 に答える