Уведомления

Группа в Telegram: @pythonsu

#1 Март 7, 2017 08:05:17

mihanik1985
Зарегистрирован: 2017-02-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter. Создание Text в цикле

Очень прошу помощи или совета в вопросе который поставил меня в тупик.
Существует необходимость подредактировать строки БД. в качестве СУБД используется GUI которую я пытаюсь составить на tkinter. Для изменения строк БД планирую использовать объект Text с последующим получением из него значения. Сейчас код выглядит так:

   system_id.grid(row=0, column=3)
system_name = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
system_name.grid(row=2, column=3)
repair_group = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
repair_group.grid(row=4, column=3)
equipment_list = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
equipment_list.grid(row=6, column=3)
work_list = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
work_list.grid(row=8, column=3)
maps = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
maps.grid(row=10, column=3)
protect = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
protect.grid(row=12, column=3)
si_list = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
si_list.grid(row=14, column=3)
injury = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
injury.grid(row=16, column=3)
conclusion = Text(self.edit_wind, height=3, width=75, font='Arial 10', wrap=WORD)
conclusion.grid(row=18, column=3)

При создании этих объектов в цикле обратиться можно только к последнему. Прим:
for i in keys:
text = Text(self.edit_wind, height=3,width=75,font='Arial 10',wrap=WORD)
text.grid(row=k, column=3)
k += 2

Так каким образом создать объекты Text в цикле с именами из списка keys, что бы к ним в дальнейшем можно было обращаться?

Офлайн

#2 Март 7, 2017 08:25:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

tkinter. Создание Text в цикле

 from Tkinter import Tk, Text, Label, WORD, Button, END
class Window:
    def __init__(self, root):
        self.root = root
        self.text_fields = []
        for i in range(10):
            text_field = Text(self.root, height=3, width=75, font='Arial 10', wrap=WORD)
            label = Label(root, text="Field #{}".format(i))
            label.grid(column=1, row=i)
            text_field.grid(column=2, row=i)
            self.text_fields.append(text_field)
        button = Button(root, text="Press me", command=self.get_all)
        button.grid(column=1, row=i+1)
    def get_all(self):
        for txt in self.text_fields:
            print(txt.get(1.0, END))
    def get_text(self, i):
        return self.text_fields[i]
if __name__ == "__main__":
    root = Tk()
    window = Window(root)
    root.mainloop()



Офлайн

#3 Март 7, 2017 09:43:59

mihanik1985
Зарегистрирован: 2017-02-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter. Создание Text в цикле

Огромное спасибо. Все заработало

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version