auf dynamisch erstellte Label zugreifen oder deren Namen ändern?
Verfasst: Freitag 24. April 2020, 19:15
Ich möchte gerne eine Funktion schreiben, die mir dynamisch eine Tabelle aus Label Widgets baut. Das funktioniert auch soweit schon gut. Aber WIE kann ich den einzelnen Labelfeldern später ihren Inhalt zuweisen?
Wie bekomme ich die Namen heraus und weiss dann auch noch welches sich wo in der Tabelle befindet?
Kann ich die Namen dann nachträglich noch irgendwie ändern?
Oder gibt es irgendeine Möglichkeit bei der Erstellung bereits eigene Namen zu vergeben - wie in meinem Beispiel z.B. der text in den Labels (C1R1) fur column1 row1 ???
application.py
test_layout_class
Wie bekomme ich die Namen heraus und weiss dann auch noch welches sich wo in der Tabelle befindet?
Kann ich die Namen dann nachträglich noch irgendwie ändern?
Oder gibt es irgendeine Möglichkeit bei der Erstellung bereits eigene Namen zu vergeben - wie in meinem Beispiel z.B. der text in den Labels (C1R1) fur column1 row1 ???
application.py
Code: Alles auswählen
from test_layout_class import *
import tkinter as tk
class Window():
def __init__(self,title="dhd", size="1200x600", bg_color="#181a23"):
self.win = tk.Tk()
self.win.title(title)
self.win.geometry(size)
def foo(self):
new_table = LayoutClass(self.win)
new_table.sipmple_table()
new_app = Window()
new_app.foo()
mainloop()
test_layout_class
Code: Alles auswählen
from tkinter import *
class LayoutClass():
def __init__(self, target):
self.target = target
def sipmple_table(self):
table = Frame(self.target, bg="#b0bbce", padx=1, pady=1)
height = 11
width = 10
table_title = Label(table, text="Titel", bg="#bad2fc")
table_title.grid(row=0, column=0, columnspan=width, sticky="nsew")
for y in range(1, width):
for x in range(1, height):
cell = Label(table,text="C"+str(y)+"R"+str(x))
cell.config(bg="#d7e4fb", padx=4, pady=4, width=10)
cell.grid(row=x, column=y-1, padx=1, pady=1)
table.pack()