ラベルを介してTkinterで2つのイメージループを同時に実行しようとしています。 Process関数を試してみましたが、最初のループから抜け出し、2番目のループを開始する方法を見つけなければなりません。そんなやり方はありますか?Tkinterで同時に2つのイメージループを実行するには
import time
import Tkinter
from multiprocessing import Process
side = Tkinter.Tk()
side.title('dice')
side.geometry('200x200')
def generate(x, y):
return ["dice/" + str(i) + '.gif' for i in range(x, y)]
a1 = generate(1,13)
a2 = generate(1,15)
a3 = generate(1,17)
a4 = generate(1,19)
a5 = generate(1,21)
a6 = generate(1,23)
L1 = Tkinter.Label(side)
L2 = Tkinter.Label(side)
L1.pack()
L2.pack()
giflist_1 = list()
giflist_2 = list()
def anim(x):
for i in x:
photo = Tkinter.PhotoImage(file= i)
giflist_1.append(photo)
def anim_1(y):
for i in y:
photo = Tkinter.PhotoImage(file=i)
giflist_2.append(photo)
def anim_3():
for gif in giflist_2:
L2.config(image=gif)
L2.update()
time.sleep(0.1)
def anim_2():
for gif in giflist_1:
L1.config(image=gif)
L1.update()
time.sleep(0.1)
if __name__ == '__main__':
p1 = Process(target=anim(a1))
p2 = Process(target=anim_1(a2))
p1.start()
p2.start()
p3 = Process(target = anim_2())
p4 = Process(target=anim_3())
p3.start()
p4.start()
side.mainloop()
さまざまな星座でside.after()を使ってみましたが、同時にイメージを均等に繰り返すことはできません。 – CasperTN
あなたは 'Process'関数を間違って使用しています。 'p1 = Process(target = anim、args =(a1、))'でなければなりません。また、私はあなたがまったくそれを使用しないことを強くお勧めします。 –
ありがとうございます。どのようにプロセス機能なしでそれを解決することが可能ですか? – CasperTN