-1

次のエラーが表示されます。

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
    return self.func(*args)
  File "D:\COMPUTER SCIENCE\Seating Plan\SeatingPlan TEST.py", line 205, in displayText
    if roomChange.get().strip() == "":
NameError: global name 'roomChange' is not defined

次のコードを実行しようとすると:

from tkinter import *
import tkinter.messagebox

def displayText():
    """ Display the Entry text value. """

    global roomChange


    if roomChange.get().strip() == "":
        tkinter.messagebox.showerror("Invalid Value", "Please enter a valid classroom name.")
    else:
        tkinter.messagebox.showinfo("Temporary Window", "Text value = " + roomChange.get().strip()) 

def roomChanger():

    chrm = Tk()
    chrm.title("Change Room")
    chrm.wm_iconbitmap('./Includes/icon.ico')
    chrm["padx"] = 40
    chrm["pady"] = 20       

    # Create a text frame to hold the text Label and the Entry widget
    textFrame = Frame(chrm)

    #Create a Label in textFrame
    roomChangeLabel = Label(textFrame)
    roomChangeLabel["text"] = "Enter name of classroom: "
    roomChangeLabel.pack(side=LEFT)

    # Create an Entry Widget in textFrame
    roomChange = Entry(textFrame)
    roomChange["width"] = 50
    roomChange.pack(side=LEFT)

    textFrame.pack()

    roomChangeButton = Button(chrm, text="Submit", command=displayText)
    roomChangeButton.pack() 

    chrm.mainloop()


testButton = Button(window, text='Change Room', command=roomChanger)
testButton.place(x = 825, y = 360)

誰でも私の問題の解決策を提案できますか? ありがとう

4

2 に答える 2

1

あなたはroomChanger()に割り当てますroomChange

roomChange = Entry(textFrame)

したがって、その名前もその関数内でグローバルとしてマークする必要があります。global roomChangeその関数にステートメントを追加します。

displayText()一方、割り当てを試みることはなく、その関数内roomChangeのステートメントは安全に削除できます。global

于 2013-09-21T21:48:37.190 に答える