2017-05-01 9 views
0

"Core"という関数の中にメニューを作成しようとしています。この関数は、ユーザーが自分のアカウントに正常にログインした後に呼び出され、新しいウィンドウ内でこれらのメニューを使用するようにしたいだけです。PythonとTkinter - def内でメニューを作成する

私は正常にメインベースルート上にメニューを作成することができますが、私にこのエラーを与えるとして呼び出されている関数内で行うことはできません: "AttributeError: 'function'オブジェクトに 'tk' 「

これは、関数自体は、(myGUIメインルートである)

def Core(): 
myGUI.withdraw() 
NewRoot = Toplevel(myGUI, 
        bg="powderblue") 
NewRoot.geometry('800x500') 
NewRoot.resizable(width=False, height=False) 

それは内で使われている 『は、ユーザが正しい認証情報を入れた場合、その後、上記の機能を実行するような、IF』ループ。

これはIFループ内に配置されます。

myGUI.after(1000, Core) 

問題:私は、このメニューは「コア」という名前のその関数内で表示したいが、私は、私はこのエラーを取得する前に言ったように:「はAttributeError: 『関数』オブジェクトが何の属性 『TK』を持っていません」

# Creating a menu 
mainMenu = Menu(Core) 
Core.config(menu=mainMenu) 
CoreContentMenu = Menu(mainMenu) 
mainMenu.add_cascade(label="Support", menu=CoreContentMenu) 
CoreContentMenu.add_command=Label("Frequent Asked Questions", command=lambda: GoFrame(FAQ)) 

私はこの関数を呼び出しているのでエラーがあることは知っていますが、どうすれば動作させることができますか?どんな助けも大変ありがとう!

mainMenu = Menu(CoreContent) 

答えて

0

あなたはこのコード行では、ウィジェットの親としてクラスを使用しようとしている。

mainMenu = menu(Core) 

あなたはこのようなNewRootとして有効なウィジェットを提供する必要があります。

+0

私の間違いを理解しました。 今、メニュー内でコマンドを追加するだけで問題が発生しています。 – sago

関連する問題