1

の色を選択してから印刷してみてください。印刷ビットは、色の部分を機能させるだけで機能します。コードをもっと見る必要がある場合は、質問してください。

def mColour():
    color = colorchooser.askcolor()
    color_name = color[1]
    mlabel2 = Label(mGui,text=color).pack()
    messagebox.showinfo(title = "Colour",message = "This feature has not been fully added yet.")
    return
def mhello():
    mtext = ment.get()
    fg=color_name
    mlabel2 = Label(mGui,text=mtext).pack()
    return

エラー:

color_name not defined
4

2 に答える 2

2

のローカルスコープ内で作成された変数にアクセスしようとしていますmColour(つまり、のスコープ内にありませんmhello)。mColourreturnを作成することでこれを修正できますcolor_name:

def mColour():
    color = colorchooser.askcolor()
    color_name = color[1]
    mlabel2 = Label(mGui,text=color).pack()
    messagebox.showinfo(title = "Colour",message = "This feature has not been fully added yet.")
    #################
    return color_name
    #################

そして、その値に次のmhelloようにアクセスします。

def mhello():
    mtext = ment.get()
    ############
    fg=mColour()
    ############
    mlabel2 = Label(mGui,text=mtext).pack()

また、次の 2 点について説明したいと思います。

1)return関数の最後の裸は何もしません。

2)packメソッドは を返しますNone。コードは次のようになります。

mlabel2 = Label(mGui,text=mtext)
mlabel2.pack()

mlabel2本来あるべきラベルを指すようになりました。

于 2013-10-18T16:03:29.823 に答える
1

あなたの助けを借りて解決策を見つけました。

#colour chooser
def mColour():
    color = colorchooser.askcolor()
    color_name = color[1]
    mlabel2 = Label(mGui,text=color).pack()
    messagebox.showinfo(title = "Colour",message = "This feature has not been fully added yet.")
    return color_name
#printing message 
def mhello():
    mtext = ment.get()
    mlabel2 = Label(mGui,text=mtext, fg = mColour()) # i put the fg and the mcolour inside here insted.
    mlabel2.pack()
于 2013-10-18T16:24:57.393 に答える