tkinter - добавить данные из вложенного списка со словарем в древовидную структуру - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь поместить некоторые данные в свое древовидное представление, и я новичок в древовидном представлении и не понимаю его полностью, если попытался прочитать документацию, но запутался еще больше.

Я создал вложенный список из 2 подсписков и несколько последних словарей.

isolering = [
[
{"name": "mineraluld"},
{"dim": "0,195"},
{"lambda": "0,37"},
{"z": "250"},
{"fire": "NA"}
],
[
{"name": "mineraluld2"},
{"dim": "0,195"},
{"lambda": "0,37"},
{"z": "250"},
{"fire": "NA"}
]]

materialLibrary = [isolering]

Теперь я не могу придумать, как правильно разместить мои данные в виде дерева.

Вот как далеко я дошел. Я не могу понять, как назвать мои данные. Я пытаюсь это сделать, как бы вы назвали это индексом. Но я понимаю, что это неправильно.

tree.insert("" , 0, text="Name")
tree.insert("", 1, "dirIso", text="Isolering")
tree.insert("dirIso", 1, text=materialLibrary[0][1][0]["name"],values=(materialLibrary[0][1][0]["dim"],
                                                                     materialLibrary[0][1][0]["lambda"],
                                                                     materialLibrary[0][1][0]["z"],
                                                                     materialLibrary[0][1][0]["fire"]))

У меня есть фотография шляпы, которую я пытаюсь сделать.

enter image description here

Я получаю сообщение об ошибке: KeyError: 'dim'

Любая помощь приветствуется или указывает в правильном направлении.

Thx

1 Ответ

0 голосов
/ 02 ноября 2018

Вопрос : добавить данные из вложенного списка со словарем в древовидную структуру

# Set 'text' to the first column heading
tree.heading('#0', text='Name')

# Insert Tree Heading as Item 'dirIso'
# Set 'text' to "Isolering"
tree.insert("", 1, "dirIso", text="Isolering")

# Loop first list
for n, dirIso in enumerate(isolering,1):
    # Make a list of values from the list of Dictionaries
    list_of_column_values = 
        [list(_dict.values())[0] for _dict in dirIso]

    # Insert the list of values
    # First value goes to Treeview 'text'
    # All other values into the following Columns
    tree.insert('dirIso', n, text=list_of_column_values[0], 
                             values=list_of_column_values[1:])

Протестировано с Python: 3,5

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