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