私はGUIプログラミングには新しく、このPythonプログラムを動作させようとしています。関数start()
を呼び出して、2つのキャンバスを更新する正しい方法は何でしょうか。私のコードはこのように見えます。Tkinterループ関数
from Tkinter import *
class TKinter_test(Frame):
def __init__(self,parent):
Frame.__init__(self,parent)
self.parent = parent
self.initUI()
user_reply = 0
def accept(self):
self.user_reply = 1
def decline(self):
self.user_reply = 2
def initUI(self):
BtnFrame = Frame (self.parent)
BtnFrame.place(y=450, x=20)
canvasFrame = Frame(self.parent)
canvasFrame.place(y = 200)
canvas_1 = Canvas(canvasFrame, width = "220", height ="200")
canvas_2 = Canvas(canvasFrame, width = "220", height ="200")
canvas_1.pack(side = LEFT)
canvas_2.pack(side = RIGHT)
textfield_1 = canvas_1.create_text(30,50,anchor = 'w', font =("Helvetica", 17))
textfield_2 = canvas_2.create_text(30,50,anchor = 'w', font =("Helvetica", 17))
Accept = Button(BtnFrame, text="Friends!", width=25, command = self.accept)
Decline = Button(BtnFrame, text="Not friends...", width=25, command = self.decline)
Accept.pack(side = LEFT)
Decline.pack(side = RIGHT)
def ask_user(self,friend_1,friend_2):
timer = 0;
while(timer == 0):
if(self.user_reply == 1):
print friend_1 + " and " + friend_2 + " are friends!"
self.user_reply = 0
timer = 1;
elif(user_reply == 2):
print friend_1 + " and " + friend_2 + " are not friends..."
self.user_reply = 0
timer = 1
def start(self):
listOfPeople = ["John","Tiffany","Leo","Tomas","Stacy","Robin","Carl"]
listOfPeople_2 = ["George","Jasmin","Rosa","Connor","Valerie","James","Bob"]
for friend_1 in listOfPeople:
for friend_2 in listOfPeople_2:
ask_user(friend_1,friend_2)
print "Finished"
def main():
root = Tk()
root.geometry("500x550")
root.wm_title("Tkinter test")
app = TKinter_test(root)
root.mainloop()
if __name__ == '__main__':
main()
私はtextfield_1.itemconfigure(text = friend_1)
ようtextfield_1と2何かを更新ask_user何かに使用したいと私はスレッドを使用しないことを好むだろう。 ありがとうございます。
更新の実行方法は不明です。 –
関数 'start()'が関数 'ask_user()'を呼び出すたびに、友人リストの2つの名前でビューを更新し、ユーザーがそれらの回答を返すのを待っていますボタン付きの友人です。@BillalBEGUERADJ – Nate
遅い回答をおかけして申し訳ありませんが、うまくいけば私のコードが役立ちます。 –