ich bin ein Stück weiter in meinem Programm, benötige jedoch nochmal eure Hilfe.
Das Programm soll ein Trainingsprogramm für ein Klettertrainingsgerät sein.
In der Main Klasse werden alle Labels und Entrys erzeugt, bis jetzt hat nur der Start Button eine Funktion. Er startet die Timer Methode, dabei werden die drei Zahlen aus den Entrys übergeben.
Die Ausgabe der print Befehle erfolgt noch per Konsole, soll aber über das Label aLabel geschehen.
Hier die main Methode:
Code: Alles auswählen
import tkinter as tk
from tkinter.ttk import Combobox
#from itertools import cycle
import Timer as T
class MainWindow(tk.Tk):
def __init__(self):
super().__init__()
self.title("Trainingsprogramm fuer den Beastmaker 1000")
#self.geometry("500x500")
self.programmLabel = tk.Label(self, text="Programm: ")
self.programmLabel.grid(row=0, column = 0, sticky="W")
self.trainValues = ["easy", "normal", "hard"]
self.trainingsProCombo = Combobox(self, values=self.trainValues,width=7)
self.trainingsProCombo.current(0)
self.trainingsProCombo.grid(row=0, column = 1)
self.helpButton = tk.Button(self, text="?")
self.helpButton.grid(row = 0, column = 2)
self.wLabel = tk.Label(self, text="Wiederholungen: ")
self.wLabel.grid(row=0, column = 3)
self.wEntry = tk.Entry(self, width=5)
self.wEntry.insert(0, "3")
self.wEntry.grid(row = 0, column = 4)
self.hLabel = tk.Label(self, text="Halte Zeit: ")
self.hLabel.grid(row=0, column = 5)
self.hEntry = tk.Entry(self, width=5)
self.hEntry.insert(0, "7")
self.hEntry.grid(row = 0, column = 6)
self.pLabel = tk.Label(self, text="Pausenzeit: ")
self.pLabel.grid(row=0, column= 7)
self.pEntry = tk.Entry(self, width=5)
self.pEntry.insert(0, "3")
self.pEntry.grid(row = 0, column = 8)
self.startButton = tk.Button(self, text="Start", width=14, command=self.startTimer)
self.startButton.grid(row = 0, column = 9)
self.aLabel = tk.Label(self, text="Anweisung: Consolen Ausgabe", font="arial16")
self.aLabel.grid(row = 2, columnspan=10)
def startTimer(self):
a = int(self.wEntry.get())
b = int(self.hEntry.get())
c = int(self.pEntry.get())
Test1 = T.Timer(a,b,c).fingertimer()
def main():
root = MainWindow()
root.mainloop()
if __name__ == "__main__":
main()
Code: Alles auswählen
import time as time
class Timer:
def __init__(self, wiederholungen, halten, pause, vorbereitung=3):
self.w = wiederholungen
self.h = halten
self.p = pause
self.v = vorbereitung
def fingertimer(self):
ws = 0
print("Noch 3 Sekunden...")
time.sleep(self.v)
print("Das Training beginnt!")
for ws in range(self.w):
print(f"Runde {ws+1}/{self.w}")
print("Halten")
#time.sleep(self.h)
for i in range(self.h):
time.sleep(1)
print(f"Sekunden {i+1}/{self.h}")
if ws in range(self.w-1):
print("Pause")
#time.sleep(self.v)
for j in range(self.p):
time.sleep(1)
print(f"Sekunden {j+1}/{self.p}")
print("Das Training ist beendet!")

Gruß Kai