2017-03-02 1 views
0

私は現在、Pythonで高校のコーディングIIクラスのための基本的なスマートミラーをコーディングしようとしています。私がやろうとしていることの1つは、あなたが押したボタンに基づいて更新するウェルカムテキストを作成することです。私が選択したユーザーに応じて変更される.txt文書のキャンバスの文字列を読んでいます。ドキュメントのテキストを変更すると自動的に更新されるようにする方法はありますか?私はメッセージを表示するために使用していますPythonで常に気持ちよくキャンバスを作っていますか?

コードです:

text2 = Canvas(tk, width=500, height=100) 
welcometext = text2.create_text(200, 50, text=string, font=('Helvetica', 20, 'italic')) 
text2.pack(side=TOP, anchor=Center) 

答えて

0

これを行うための基本的な方法は、ループを持っています。ループの各サイクルでは、ユーザーの入力と再描画を確認する必要があります。ループをきれいにするために、すべてを関数に分解してください。このような何か -

canvas = Canvas(tk, width=500, height=500) 
text = '' 

while(True) { 
    getUserInput(text) 
    draw(canvas, text) 
} 

あなたのgetUserInput機能では、ユーザー入力を取得するために、Pythonのinput機能で構築を使用することができます。

これは、ループが再描画するたびにユーザーの入力を待つため、これは単純なアプローチです。これを行う適切な方法は、threadingを使用することです。あなたは、メインループが他のことをしている間にユーザ入力を取得するスレッドを持つことができます。これは、データ同期の問題のために、非常に複雑になります。私は今のところ素朴なアプローチに固執しています。

また、変数text2は誤解を招きます。変数の名前を正確に指定するようにしてください。この場合はCanvasオブジェクトなので、canvasと呼んでください。

関連する問題