单击按钮后,主循环重新执行4次

时间:2017-02-28 16:54:14

标签: python tkinter

我是TkInter的新手。我有这个程序,在单击一个按钮后,它从另一个模块(anotherModule)调用一个函数(processTask),该模块需要几分钟才能运行。

问题是单击按钮后,几秒钟后会弹出4个主程序窗口。我真的不明白为什么会这样。

我的代码中是否有某些东西可以让程序表现得那样?

提前致谢

from Tkinter import *
import tkMessageBox
from anotherModule import *
import ttk
from PIL import ImageTk, Image
import threading

app = Tk()
app.title("Title")
app.geometry('450x300+200+200')

img = ImageTk.PhotoImage(Image.open("logo.png"))
panel = Label(app, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")

message = ''


def handle_click():
    Instruction.config(text='Rquest is being processed')
    pb.start()
    def callback():
        processTask()
        pb.stop()
        pb.config(value=100)
        Instruction.config(text='Fin')


    t = threading.Thread(target=callback)
    t.start()

B = Button(app, command = handle_click)
img2 = ImageTk.PhotoImage(Image.open("GenHor.PNG"))
B.config(image = img2)
B.pack()
Instruction = Label(app, text=message, font='size, 14')
Instruction.pack()

pb = ttk.Progressbar(app,orient='horizontal',length=300,mode='determinate')

pb.pack()

app.mainloop() 

修改

我知道这不是最好的解决方案但是,有没有办法计算执行次数并执行类似的操作:

if counter == 1:
    app.mainloop()

那么,只有在第一次执行时才会运行mainloop?

0 个答案:

没有答案