Seite 1 von 1
for-Schleifen bei Entry und Werte daraus speichern
Verfasst: Dienstag 16. Juni 2009, 19:24
von Pascal
Hallo,
wie kann ich folgendes in Tkinter umsetzen?
Code: Alles auswählen
liste=[]
for s in range(1,6):
print s , ': ',
liste.append(raw_input())
Gibt es die Möglichkeit Variablennamen aus listen zu vergeben?
hoffe der Satz war verständlich
so würde das ganze als Ansatz in Tkinter aussehen:
Code: Alles auswählen
import Tkinter as tk
win=tk.Tk()
liste=[]
for s in range(1,6):
tk.Label(win, text=(str(s)+': ')).pack()
tk.Entry(win).pack()
...
Verfasst: Dienstag 16. Juni 2009, 21:07
von BlackJack
@Pascal: Du musst Dir die `Entry`-Exemplare halt irgendwo merken, um später den Text von ihnen Abfragen zu können. Du könntest sie zum Beispiel in eine Liste stecken.
Verfasst: Dienstag 16. Juni 2009, 21:49
von kaytec
Hallo Pascal !
Code: Alles auswählen
#! /usr/bin/python
# -*- coding: utf-8
import Tkinter as tk
class Tk_Gui(object):
def __init__(self, root):
self.labels = ["1", "2", "3"]
self.entrys = (0, 1, 2)
self.buttons= (("Get Entry", self.get_entrys),
("Change Text", self.change_text),
("Disable Buttons", self.disable_buttons))
self.entry_control = list()
self.label_control = list()
self.button_control = list()
for column, text in enumerate(self.labels):
label = tk.Label(root, text=text, width=10)
label.grid(column=column, row=0)
self.label_control.append(label)
for column in self.entrys:
entry = tk.Entry(root, width=10)
entry.grid(column=column, row=1)
self.entry_control.append(entry)
for column, (text, command) in enumerate(self.buttons):
button = tk.Button(root, text=text, width=10, command=command)
button.grid(column=column, row=2)
self.button_control.append(button)
def get_entrys(self):
container = list()
for entry in self.entry_control:
container.append(entry.get())
print container
def change_text(self):
self.labels.reverse()
for label, text in zip(self.label_control, self.labels):
label.config(text=text)
def disable_buttons(self):
for button in self.button_control:
button.config(state = "disabled")
def main():
root = tk.Tk()
app = Tk_Gui(root)
root.mainloop()
if __name__ =="__main__":
main()
Gruß Frank
Verfasst: Mittwoch 17. Juni 2009, 20:16
von Pascal
Danke
Allerdings brauch ich eig. nur diesen Teil:
Code: Alles auswählen
for column in self.entrys:
entry = tk.Entry(root, width=10)
entry.grid(column=column, row=1)
self.entry_control.append(entry)