Von einer Klasse in die Andere
Verfasst: Donnerstag 22. Dezember 2016, 15:33
Liebe Leute,
ich habe Probleme mit der Klasseninstanz eines Minimalbeispieles:
Der Code besteht wesentlich aus zwei Klassen: GUI und Zeugs. aus GUI wird die Instanz gui erzeugt und aus gui heraus wird in der init aus Zeugs zeug als Objekt erstellt. Nun will ich mittels des Objektes zeug in gui eine Listbox füllen.
Frage:
Welche Instanz ist das dann ?
gui.l_pages.insert(tk.END,line) erzeugt:
Das funktioniert aber auch nicht.
Für einen Tipp wäre ich dankbar.
Grüße,
Thorsten
ich habe Probleme mit der Klasseninstanz eines Minimalbeispieles:
Code: Alles auswählen
#!/usr/bin/env python3
# coding: utf8
import tkinter as tk
#from hole_mini import *
class GUI(tk.Frame):
def __init__(self,master=None):
# erzeugen der graphischen Oberfläche
super().__init__(master=master)
self.pack(side=tk.TOP, fill='x')
self.create_widgets()
# Erzeugen des Objektes zeug aus der Klasse Zeugs
self.zeug = Zeugs()
def create_widgets(self):
self.l_pages = tk.Listbox(self,selectmode='extended',width=30)
self.l_pages.pack()
self.b_start = tk.Button(self,text="Start",command=self.test) # Page durchlaufen lassen
self.b_start.pack()
self.l_pages.insert(tk.END,"Hier sollen die Werte Eins Zwei und Drei hintereinander eingetragen werden")
def test(self):
self.zeug.listbox_fuellen()
def appStart(self):
self.mainloop()
class Zeugs():
def listbox_fuellen(self):
Values = ["Eins","Zwei","Drei"]
# das hier funktioniert nicht
for line in Values:
gui.l_pages.insert(tk.END,line)
def main():
gui = GUI()
gui.appStart()
if __name__ == "__main__":
main()
Frage:
Welche Instanz ist das dann ?
gui.l_pages.insert(tk.END,line) erzeugt:
Ist das nicht global ? Gut, ich habe es in main erzeugt, also könnte die Idee noch sein main.gui.l_pages.***NameError: global name 'gui' is not defined
Das funktioniert aber auch nicht.
Für einen Tipp wäre ich dankbar.
Grüße,
Thorsten