Добавление значений к конкретному столбцу в древовидной структуре Tkinter - PullRequest
0 голосов
/ 25 апреля 2018

Я сделал древовидное представление и хочу добавить значения в первый и второй столбцы, а затем программе необходимо вычислить значения, которые будут помещены в третий столбец при нажатии кнопки ВВОД (я использовал события и привязки). Я не знаю, как поместить значения в конкретный столбец в виде дерева, я всегда получаю эту ошибку:

TypeError: 'float' object is not subscriptable

Я знаю, как вставлять значения в каждый столбец одновременно, но я не знаю, как вставить только одно значение в конкретный столбец, не изменяя значения в других столбцах. Это функция, которую я написал:

def PlannedCosPerSize(event):

    try:
        for child in tree.get_children():
            Size=round(float(tree.item(child,"values")[1]),2)
            PlannedCost=round(float(tree.item(child,"values")[2]),2)
            PlanCostPerSize=float(round(PlannedCost/Size,2))

            tree.insert("","end", values=(PlanCostPerSize)[4])

            print(PlanCostPerSize)


    except IndexError:
        Error=messagebox.showinfo("error","You have error")
        pass

tree.bind('<Return>', PlannedCosPerSize)  # validate with Enter

1 Ответ

0 голосов
/ 26 апреля 2018

Метод insert создает новый элемент в Treeview, но вы хотите отредактировать существующий элемент, поэтому этот метод не подходит для использования.

Одна из возможностей - использовать метод set Treeview для получения или установки значения в определенном столбце:

  • treeview.set(item, '#1') даст вам значение в первом столбце.
  • treeview.set(item, '#3', new_value) изменит значение третьего столбца на new_value.

Вы также можете использовать имя столбца (указанное в columns= при создании Treeview) вместо '#<column number>'.

Другая возможность - использовать метод item:

  • old_values = treeview.item(item, 'values') даст вам значения элемента.
  • treeview.item(item, values=(old_values[0], old_values[1], new_value)) изменит последнее значение элемента.

Документация по виджету Treeview: http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-Treeview.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...