Zur Laufzeit variable anzahl von Labels erstellen

Fragen zu Tkinter.
Antworten
Smokie_joe
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 22:20

Hi @ all und frohe Weinachten und schon mal ein frohes neues

zu meiner Frage:

Ist es möglich zur Laufzeit eines Prgrammes die Grafischeoberfläche zu ändern?

In der Art:
Der Benutzer gibt die Anzahl der gewünschten Ausgabelabels in
ein Entry Feld ein und drück dann auf ein Button um die Erstellung zu starten. Und unmitelbar danach werden diese in die GUI eingebettet.
(z.B. in einem dafür vorgesehenen Frame).

Ist das möglich ?
Wenn ja habt ihr evtl. Tipps oder Info-quellen dazu?

mfg
Smokie
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Hi,
ist doch sehr einfach mit Tkinter. :-)
Ich hoffe es hilft dir weiter.

Code: Alles auswählen

#! /usr/bin/python
from Tkinter import *
root = Tk()
stringvar=StringVar()
def makeLabels():
	x = int( stringvar.get() )
	for i in range(x):
		L = Label(frm2, text=i, width=4, height=2,
				relief=RAISED, bd=2)
		L.pack(side=LEFT, padx=1, pady=1)

frm1 = Frame(root)
frm1.pack(side=TOP, expand=NO, fill=BOTH) 
entry = Entry(frm1, textvariable=stringvar)
entry.pack(side=TOP, expand=NO, fill=BOTH)
Button(frm1, text='Ok', 
	command=makeLabels).pack(side=TOP,
				fill=X, expand=YES, anchor=N)

frm2 = Frame(root, relief=SUNKEN, bd=2)
frm2.pack(side=TOP, anchor=N,
		expand=YES, fill=BOTH, padx=5)
root.mainloop()
Gruss
pyStyler
Smokie_joe
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 22:20

Danke ;)

Ähnlich hatte ich es versucht allerdings auserhalb der Schleife gepackt.
Wahrscheinlich zeigte er mir daher immer nur das zuletzt erstellte Label :oops:

Aber jetzt noch eine weiter frage nun kann ich nach der Erstellung der Labels nicht mehr auf die Einzelnen Labels zugreifen nachkonfigurieren oder ?
"heißen ja alle L" oder liege ich falsch ? das ist nämlich dann gleich das nächste Problem :roll: ^^

Aber wie gesagt vielen Dank bringt mich auf jeden fall schonmal weiter.

mfg
Smokie
BlackJack

Du kannst sie ja in einer Liste speichern, dann kannst Du auch später wieder darauf zugreifen.
Smokie_joe
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 22:20

Achja viel. etwas sehr spät^^ (hatte in letzer Zeit viel um die Ohren)

aber danke f. den Tipp mit der Liste funktioniert wunderbar ;)



mfg
Smokie :D
Antworten