Ich versuche mich in die objektorientierte Programmierung, im folgenden der einfachheitshalber OOP genannt einzuarbeiten.
Soweit ich das verstanden habe, dient die OOP den Programmcode strukturierter zu machen. Um u.a. die Wartung zu vereinfachen, wird das Programm in kleinere Module, sprich Klassen aufgeteilt.
Nach diesem Prinzip versuche ich schon seit Tagen etwas zu programmieren. Leider habe ich es bisher nicht geschafft/verstanden, wie ich Daten/Werte zwischen den Klassen austauschen kann. Ich habe hier mal ein einfaches Beispiel mit 3 Klassen gebastelt und versuche hier die in der Klasse class MainWindow(tk.Tk):
Variable self.name_var = tk.StringVar() auch in den anderen beiden Klassen zu benutzen. Ja und genau an der Stelle komme ich nicht weiter.
Hier der Programmcode:
Code: Alles auswählen
import tkinter as tk
class MainWindow(tk.Tk):
def __init__(self):
super().__init__()
self.title('Datenaustasuch zwischen Klassen')
self.geometry("500x300")
self.resizable(False, False)
tk.Label(self, text='Name:').grid(column=0, row=0)
self.name_var = tk.StringVar()
name_entry = tk.Entry(self, textvariable=self.name_var)
name_entry.grid(column=1, row=0)
name_entry.focus()
submit_button = tk.Button(self, text='Submit', command=self.submit)
submit_button.grid(column=2, row=0)
self.output_label = tk.Label(self)
self.output_label.grid(column=0, row=1, columnspan=3)
def submit(self):
self.output_label.config(text=self.name_var.get())
class Class2(tk.Frame):
def __init__(self,master):
tk.Frame.__init__(self)
self.label_class2 = tk.Label(self)
self.label_class2.grid(column=0, row=2, columnspan=3)
self.label_class2.config(text= self.name_var.get())
class Class3(tk.Frame):
def __init__(self,master ):
tk.Frame.__init__(self)
self.label_class3 = tk.Label(self)
self.label_class3.grid(column=0, row=3, columnspan=3)
self.label_class3.config(text= self.name_var.get())
def main():
root = MainWindow()
root.mainloop()
if __name__ == "__main__":
main()
Liebe Grüße
sc19