ich habe die Klasse timeentry entfernt und alles in eine Klasse eingefügt.
1. kann ich die Partialfunktion beim Betätigen des Button "Übernehmen" ausführen, da es ein NONE-Typ ist (scheint in meiner Struktur wegen der Klasse oder weil ich innerhalb der Klasse bin nicht zu funktionieren) --> Gibt es hier eine Lösung oder funktioniert sowas gar nicht?
2. Wenn ich den Part mit den Entry-Einträge direkt in def main () eintrage, dann funktioniert alles wie gewohnt, jedoch sind hier dann die anderen Anpassungen der GUI nicht berücksichtigt. Damit ich verstehe, warum es das macht, habe ich alle störenden Labels und Felder auskommentiert und nur die Entry gelassen. --> Kann dies nicht zusammenfassen mit der def __init__ in der Klasse? Nur dann bin ich wieder beim Problem 1.
Code: Alles auswählen
import tkinter as tk
import time
from functools import partial, partialmethod
import functools
class MainWindow():
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master, relief=tk.RIDGE, borderwidth=5)
self.frame.pack(fill=tk.BOTH, expand=True)
self.master.title("Auto-SWITCH")
self.master.geometry("600x600")
self.label = tk.Label(self.frame, text="Programm für automatischen Fensterwechsel").grid(row=1, column=1, columnspan=3, pady=15, padx=25)
self.label = tk.Label(self.frame, text="Eingabe Zeitintervall Fenster 1").grid(row=2, column=1)
self.label = tk.Label(self.frame, text="Eingabe Zeitintervall Fenster 2").grid(row=3, column=1)
self.label = tk.Label(self.frame, text="Sek.").grid(row=2, column=3)
self.label = tk.Label(self.frame, text="Sek.").grid(row=3, column=3)
self.eingaben = []
self.eingabe = tk.Entry(self.frame, bd=2, width=22).grid(row=2, column=2)
self.eingaben.append(self.eingabe)
##
##
self.eingabe = tk.Entry(self.frame, bd=2, width=22).grid(row=3, column=2)
self.eingaben.append(self.eingabe)
self.uebernehmen_button = tk.Button(self.frame, text="Übernehmen").grid(row=4, column=1, columnspan=3, pady=10)
self.label = tk.Label(self.frame, text="Zeiten übernommen:").grid(row=5, column=1, columnspan=2)
self.label = tk.Label(self.frame, text="Zeitintervall Fenster 1:").grid(row=6, column=1)
self.label = tk.Label(self.frame, text="Zeitinvervall Fenster 2:").grid(row=7, column=1)
self.ausgaben = []
self.ausgabe = tk.Entry(self.frame, state=tk.DISABLED, bd=2, width=10).grid(row=6, column=2)
self.ausgaben.append(self.ausgabe)
##
self.ausgabe = tk.Entry(self.frame, state=tk.DISABLED, bd=2, width=10).grid(row=7, column=2)
self.ausgaben.append(self.ausgabe)
##
assert len(self.eingaben) == len(self.ausgaben)
print(self.eingabe)
## self.uebernehmen_button["command"] = partial(self.uebernehmen, self.eingaben, self.ausgaben)
def uebernehmen(self,eingaben, ausgaben):
for self.eingabe, self.ausgabe in zip(eingaben, ausgaben):
zeit = eingabe.get()
print(zeit)
print(convert(zeit))
eingabe.delete(0, tk.END)
ausgabe["state"] = tk.NORMAL
ausgabe.delete(0, tk.END)
ausgabe.insert(0, zeit)
ausgabe["state"] = tk.DISABLED
def convert(zeit_text):
minutes_text, seconds_text = zeit_text.split(":")
return int(minutes_text) * 60 + int(seconds_text)
def uebernehmen(eingaben, ausgaben):
for eingabe, ausgabe in zip(eingaben, ausgaben):
zeit = eingabe.get()
print(zeit)
print(convert(zeit))
eingabe.delete(0, tk.END)
ausgabe["state"] = tk.NORMAL
ausgabe.delete(0, tk.END)
ausgabe.insert(0, zeit)
ausgabe["state"] = tk.DISABLED
def main():
root = tk.Tk()
app = MainWindow(root)
frame = tk.Frame(root, relief=tk.RIDGE, borderwidth=5)
frame.pack(fill=tk.BOTH, expand=True)
eingaben = []
## tk.Label(rahmen, text="Eingabe Zeitinterval Fenster 1").grid(
## row=2, column=1
## )
eingabe = tk.Entry(frame, bd=2, width=22)
eingabe.grid(row=2, column=2)
eingaben.append(eingabe)
## tk.Label(rahmen, text="Sek.").grid(row=2, column=3)
## tk.Label(rahmen, text="Eingabe Zeitinterval Fenster 2").grid(
## row=3, column=1
## )
eingabe = tk.Entry(frame, bd=2, width=22)
eingabe.grid(row=3, column=2)
eingaben.append(eingabe)
## tk.Label(rahmen, text="Sek.").grid(row=3, column=3)
uebernehmen_button = tk.Button(frame, text="Übernehmen")
uebernehmen_button.grid(row=4, column=1, columnspan=3, pady=10)
## tk.Label(rahmen, text="Zeiten übernommen:").grid(
## row=5, column=1, columnspan=2
## )
ausgaben = []
## tk.Label(rahmen, text="Zeitintervall Fenster 1:").grid(row=6, column=1)
ausgabe = tk.Entry(frame, state=tk.DISABLED, bd=2, width=10)
ausgabe.grid(row=6, column=2)
ausgaben.append(ausgabe)
## tk.Label(rahmen, text="Zeitintervall Fenster 2:").grid(row=7, column=1)
ausgabe = tk.Entry(frame, state=tk.DISABLED, bd=2, width=10)
ausgabe.grid(row=7, column=2)
ausgaben.append(ausgabe)
assert len(eingaben) == len(ausgaben)
print(eingabe)
uebernehmen_button["command"] = partial(uebernehmen, eingaben, ausgaben)
root.mainloop()
if __name__ == '__main__':
main()