Возможно, я упускаю здесь что-то совершенно очевидное, поскольку я совершенно новичок в Treeview, но когда я вставляю свои значения (в данном случае «Привет»), выводится только «Привет» - всегда появляется только первое слово. .
Как вы, наверное, видите, я пытаюсь создать таблицу плюсов и минусов с фиксированными значениями, но я думаю, что у вас должен быть столбец «# 0», поэтому я закончил тем, что сделал его своим столбцом «Плюсы». способ делать вещи?
symmetric_tree=ttk.Treeview(symmetric_tab)
symmetric_tree["columns"]=("one")
symmetric_tree.column("#0", width=270, minwidth=270)
symmetric_tree.column("one", width=150, minwidth=150)
symmetric_tree.heading("#0",text = "Pros",anchor=W)
symmetric_tree.heading("one", text = "Cons",anchor=E)
symmetric_tree.insert(parent = "", index = "end", iid = "#0", text = "Easy to implement",
values=("Hello there"))
symmetric_tree.pack(side = "top",fill = "x")
Метод treeview требует, чтобы вы передали список или кортеж значений. Вы передаете одно значение. Поскольку это не список, внутренний интерпретатор tcl преобразует значение в список, разбивая его на пробелы.
Решение состоит в том, чтобы передать список или кортеж в insert
. Обратите внимание, что ("Hello there")
— это одно значение, а ("Hello there",)
— это кортеж с одним значением.
symmetric_tree.insert(..., values=("Hello there",))
@CoolCloud tkinter просто передает то, что ему было дано, базовому интерпретатору Tcl. Разделение по пробелам в интерпретаторе Tcl является фундаментальным для этого языка.
Разве не странно, что tcl разбивается по пробелу, я думаю, если бы это был python, он бы перебрал строку «Hello World» и получил 11 элементов?