2017-03-14 15 views
0

Tkinterの新機能です。私はTkinterを使うことを学んでいますが、問題があります!tkinterのボタンで関数を呼び出すことができません

テキストを書き込んでテキストファイルにテキストを保存し、ボタンを押して情報を保存する機能を実行したいとします。しかし、私の "コマンド"は機能を起動しないようです。

def ny_artikel(): 
    artikel_data = open ("artikel_databas.txt", "w") 
    artikel_data.write(ny_artikel.get()) 
    artikel_data.close() 

spara_artikel = Button(new_product_window, text ="Save new article", command = ny_artikel) 
spara_artikel.grid(row=7, column=1) 

ny_artikelは私のプログラムで使用される入力ボックスであるが、私はそれがここでそれをすべて貼り付けることがあまりにも多くの行をだと思います。

ボタンを押すと、何も起こりません。エラーメッセージでもありません。

+2

エラーメッセージは表示されませんか?あなたが関数 'ny_artikel'を定義したところで、まったく同じ名前のどこかに' Entry'ウィジェットが存在すると予想される場合、どこにもエラーがなければ私は驚くでしょう。 – TigerhawkT3

+1

'print( 'という名前の関数)を(上の)関数に置き、関数が呼び出されたかどうかを判断します。 –

+0

テリーさんと同じようにしてみました。私はprint(ny_artikel)とタイプしました。 エラーメッセージは表示されませんでしたが、次のような青いテキストが表示されました: これは、何か間違いがあるか、 この関数を別の関数の「ny_artikel」と呼びますか? あなたの親切な助けをありがとう:) –

答えて

0

あなたの答えのコードはあなたのpythonファイルの一部に過ぎないと思います。私は私の例ではエントリEでそれを試し、それが右に動作します:

import tkinter 

def ny_artikel(): 
    with open('artikel_databas.txt', 'w') as artikel_data: 
     artikel_data.write(e.get()) 

main = tkinter.Tk() 
e = tkinter.Entry(main) 
e.grid(row=0, column=0) 
spara_artikel = tkinter.Button(main, text ="Save new article", command = ny_artikel) 
spara_artikel.grid(row=1, column=0) 
main.mainloop() 

私は自動的にファイルをクローズ「でny_artikel()関数として」「と」を使用代わりに。 file.close()もうまく動作します。

What is the python keyword "with" used for?

0

問題が見つかりました。私は自分のプログラムで使用されている変数の1つと同じnmeを関数に使用するという誤解を犯しました。

今私は、このエラーメッセージが表示されます: はTypeError:1つの必要な位置引数が不足してnyart(): 'ny_artikel'

任意のアイデア

が、これが意味することができます何を?

+0

答えのセクションは新しい質問をする場所ではありません。 –

関連する問題