Seite 1 von 1

widget in einem Frame ansprechen?

Verfasst: Mittwoch 17. März 2021, 18:14
von DRW
Guten Tag zusammen,

das kriege ich nicht gelöst:

def shomainwindow(parent, dbislocal):
...
wrapper1 = tk.LabelFrame(parent, text="Tabelle",height="12")
wrapper1.pack(fill="both", expand="yes", padx=4, pady=4)
...
tre = ttk.Treeview(wrapper1, columns=collist, show="headings", height="10")
...
rows=...
updatetbltre(rows)
...

def updatetbltre(rows):
for i in rows:
tre.insert('', 'end', values=i)

endet immer mit einem Fehler.
Versucht habe ich wrapper1.tre, root. davor (wegen root=tk.Tk()), Parameterübergabe, ...

Also zusammengefasst gelingt es mir nicht, über irgendeinen Weg per Code auf ein beliebiges, irgendwo existierendes Widget zuzugreifen, das in einer Funktion definiert wurde.
Auf globale Variablen werde ich nicht zurückgreifen, auch wenn es damit funktioniert.

Geht so etwas überhaupt oder löst man das komplett anders? Ich sitze jetzt wirklich schon tagelang vor tkInter-Dokus, aber das ist nicht dabei oder überlesen...

Danke & Grüße
Dirk

Re: widget in einem Frame ansprechen?

Verfasst: Mittwoch 17. März 2021, 21:18
von Dennis89
Hallo,

kannst du mal bitte den vollständigen Code *mit* vollständiger Fehlermeldung posten?


Grüße
Dennis

Re: widget in einem Frame ansprechen?

Verfasst: Mittwoch 17. März 2021, 21:19
von __blackjack__
@DRW: Bei jeder nicht-trivialen GUI kommt man nicht um objektorientierte Programmierung herum, also mindestens eine eigene Klasse zu schreiben.

Re: widget in einem Frame ansprechen?

Verfasst: Sonntag 21. März 2021, 06:46
von DRW
Hallo zusammen und danke euch beiden,
das das Murks war, ist mir klar. Wie man an den "wunderbaren" Variablennamen sieht, war das auch nur ein Versuch.
Es sah auf den ersten Blick so aus, als ob man auf die Klassen verzichten könnte, aber genau damit und konsequent OOP habe ich es nun gemacht.
Aber dafür habe ich gleich ein nächstes Problem, siehe anderer Post... ;-)

Gruß,
Dirk