私は現在Tkinterを使って既存のPythonプログラムをGUIにしようとしています。このプログラムは、ユーザに2つの選択肢を与え、ユーザはそれを受け入れるか拒否するかを選択しなければならない。 Tkinterを使う前に、オプションが端末に置かれ、raw_inputが待っていました。 (y/n)である。キャンバステキストが新しいデータで更新され、ユーザーのボタンがクリックされるのを待つために、どうすればいいですか?Python/Tkinterは動的にラベルを更新します
私の質問をより具体的にするには:Tkinterメインループが動作している間に別のプログラムコードを実行して、これらの2つを相互に作用させるにはどうすればいいですか?
下記のコード例。私が正しく理解していれば、あなたのupdate_textfiel
機能では、いくつかの矛盾した変数名を持っているまず第一に
from Tkinter import *
root = Tk()
root.resizable(width=False, height=False)
root.geometry('{}x{}'.format(500,550))
root.wm_title("Tkinter test")
BtnFrame = Frame (root)
BtnFrame.pack(side = BOTTOM)
BtnFrame.place(y=450, x=20)
canvas_1 = Canvas(root, width = "200", height ="300")
canvas_2 = Canvas(root, width = "250", height ="300")
canvas_1.pack(side = LEFT)
canvas_2.pack(side = RIGHT)
textfield_1 = canvas_1.create_text(100,50)
textfield_2 = canvas_2.create_text(100,50,)
def update_textfiel_1(text):
global textfield_1
canvas_1.delete(textfield_1)
textfield = canvas.create_text(100,50,text = text)
def update_textfiel_2(text):
global textfield_2
canvas_2.delete(textfield_2)
textfield1 = canvas1.create_text(100,50,text = text)
Accept = Button(BtnFrame, text="Accept", width=25)
Decline = Button(BtnFrame, text="Decline", width=25)
Accept.pack(side = LEFT)
Decline.pack(side = RIGHT)
root.mainloop()
'Button'コンストラクタの' command'オプションはおそらくあなたが望むものです。そうでなければ[イベント](http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/events.html)と 'Canvas.bind'。 –
更新されたテキストはどのようなものでしょうか? –
更新されたテキストは、元のプログラムのループ関数がTkinterプログラムに渡すものです。私は 'command'と' Canvas.bind'の両方を成功裏に試しました... @ TadhgMcDonald-Jensen – Nate