2014-10-24 4 views
0

Использование tkinter в gui Я создаю массив из ящиков ввода. В некоторых столбцах массива я ввожу значения, которые я читаю, и строю список для каждого столбца. Существуют также столбцы без значений, которые только для чтения, в которых я хочу экспортировать результаты из списков. Я не могу найти, как заставить программу показывать результаты.tkinter представляет значения из виджета списка для ввода

Имейте в виду, что у меня есть два defs для построения виджетов и один для расчетов.

Для того, чтобы построить один столбец пустой-результаты я делаю это:

self.akt_b =[] 
    for i in range(12): 
     akt_b =StringVar() 
     self.akt_b =Entry(self, textvariable =akt_b, width =10, 
            state='readonly', readonlybackground ="white") 
     self.akt_b.grid(row =7+i, column =3) 

что делает визуально то, что я хочу. Тогда я вычислить list_b чисел с плавающей точкой 12, который я хочу показать в self.akt_b Пытаюсь:

for i in range(12): 
     self.akt_b[i+1].delete(0, END) 
     self.akt_b[(i+1)].set("round(list_b[(i+1)], 2)") 

который не работает я попытался также .Применять не снова, я ve попробовал akt_b ничего больше

что я могу сделать?

+0

_ «..., который не работает.» _ Итак, вы получаете сообщение об ошибке, или что? Кроме того, на одной строке вы делаете 'self.akt_b = []', а на другой строке вы делаете 'self.akt_b = Entry (...)'. Если вы пытаетесь создать список записей, это не так, как это работает. Там должно быть 'self.akt_b.append (...)' где-то. – Kevin

+0

это было, большое спасибо! Я использовал .append в другом списке записей, но почему-то я не использовал его в этом – Michalis

ответ

2

после ответа Кевина я выяснил решение, мне не хватало аргумент .append.

Только в случае, если кому-то интересно вот решение:

self.akt_b, self.entries =[], [] 
    for i in range(12): 
     akt_b =StringVar() 
     entries =Entry(self, textvariable =akt_b, width =10, 
            state='readonly', readonlybackground ="white") 
     entries.grid(row =7+i, column =3) 
     self.akt_b.append(akt_b) 

так что теперь

for i in range(12): 
     self.akt_b[i].set(round(list_b[i], 2)) 

работает отлично.

Иногда мозг просто кажется, чтобы остановить ...