Zeil soll es sein ein Programm zu haben, in dem in verschiedenen Funktionen verschiedene Prozesse ablaufen Das nenne ich der übersicht halber mal "rechnen". Ich will nun während ich "rechne" auf eine dritte Funktion zugreifen, in der ich zuerst eine Progress Bar erstelle und dann immer wieder update.
Bisher und in sämtlichen Anleitungen und Foren habe ich es nur genau anders herum gesehen. Also eine Funktion in der die Progressbar erstellt wird ruft eine dritte Funktion auf, in der "gerechnet" wird. Das führt aber dazu dass ich riesige Arrays quer durch die Funktionen schieben muss und das erscheint mir nicht so elegant.
Hier mal der Code, wie ich ihn bisher habe.
Im Prinzip steckt mein Problem bei "button1", weil dort ja die funktion "Start" aufgerufen wird, die die Progressbar updatet...
Vielen Dank für Eure Hilfe!

Code: Alles auswählen
from tkinter import *
from tkinter.ttk import *
import time
images = 100
class Rechnen:
def __init__(self):
pass
def func_Rechnen(self, d):
time.sleep(0.05)
return 5 + d
class Progress:
def start(self ,percent, text, bar, images):
download = 0
speed = 1
while(download<images):
d=10
print(Rechnen.func_Rechnen(self, d))
bar['value']+=(speed/images)*100
download+=speed
percent.set(str(int((download/images)*100))+"%")
text.set(str(download)+"/"+str(images)+" Images Saved")
self.progwin.update_idletasks()
def __init__(self, images):
self.progwin = Tk()
percent = StringVar()
text = StringVar()
bar = Progressbar(self.progwin,orient=HORIZONTAL,length=300)
bar.pack(pady=10)
percentLabel = Label(self.progwin,textvariable=percent).pack()
taskLabel = Label(self.progwin,textvariable=text).pack()
button1 = Button(self.progwin,text="download",command=self.start(percent, text, bar, images))
self.progwin.mainloop()
progress = Progress(images)