-3

これは私のコードです:

import sys
from tkinter import *


def next_screen(names):
    for widget in names:
        widget.place_forget()   

def forget_page1():
    widgets = [mLabel1, button]
    next_screen(widgets)

mGui = Tk ()

mGui.geometry("600x600+545+170")
mGui.title("MyMathDictionary")
mLabel1 = Label (text = "Welcome to MyMathDictionary. Press Next to continue.",
                 fg = "blue",bg = "white")
mLabel1.place (x= 150,y = 200)

button = Button (text = "Next", command = forget_page1 ())
button.place(x = 275,y = 230)

mGui.mainloop()

それは私に言います:

Traceback (most recent call last):   File
"C:\Python33\Projects\MyMathDictionary.py", line 24, in <module>
    button = Button (text = "Next", command = forget_page1 (mLabel,button)) NameError: name 'button' is not defined

このエラー メッセージは何を意味しますか?

4

1 に答える 1

1

次のコード行を変更します。

button = Button (text = "Next", command = forget_page1 ())

これに:

button = Button (text = "Next", command = forget_page1)

あなたの問題はforget_page1、ウィンドウが読み込まれる前に呼び出していたことです。

また、コメントが既に述べているように、エラーはコードとは異なります。しかし、念のため、それについても簡単に説明します。ボタンのコマンド関数に引数を送信する場合は、次を使用する必要がありますlambda

button = Button(command = lambda: func(arg1, arg2))
于 2013-08-09T13:35:17.390 に答える