我一直在 PysimpleGUI 中处理这棵树,突然,当我给它一个充满数据的列表时,
insert
方法决定停止工作。我调试了几乎所有有关它的内容,函数 insert
本身停止工作或向树数据添加任何内容。这是代码
import PySimpleGUI as sg
from services import HandlePacks
Cardpacks = HandlePacks()
card_packs = Cardpacks.get_packs()
treeData = sg.TreeData()
for pack_name, card_pack in card_packs:
print("Adding pack:", pack_name)
treeData.insert("", str(pack_name), str(pack_name), "", icon=None)
for card in card_pack:
card_name = card["name"]
print("Adding card:", card_name)
treeData.insert(str(pack_name), str(card_name), str(card_name), "", icon=None)
print(treeData)
sg.theme("LightGrey1")
tree = sg.Tree(
treeData,
font=("Helvetica", 16),
col0_width=30,
enable_events=True,
show_expanded=False,
key="-TREE-",
)
delete_button = sg.Button("Delete Pack", disabled=True)
layout = [
[sg.Text("All your Packs:", font=("Calibri", 24))],
[tree],
[delete_button],
]
window = sg.Window("Memory Game", layout, size=(600, 500))
while True:
event, values = window.read()
if event in (None, "Exit"):
break
if event == "-TREE-":
selected_item = values["-TREE-"]
if selected_item:
delete_button.update(disabled=False)
else:
delete_button.update(disabled=True)
elif event == "Delete Pack":
selected_item = values["-TREE-"][0]
Cardpacks.delete_pack(selected_item)
window.refresh()
window.close()
我尝试将其从
Insert
更改为insert
,但没有帮助。任何帮助将不胜感激。
它没有告诉我们图书馆
services
是什么,也许card_packs
有问题,或者它是空。
我创建了一个基本数据来展示它们如何插入到TreeData中,然后作为Tree元素的数据。
import PySimpleGUI as sg
kinds = {"Spades":"♠", "Hearts":"♥", "Diamonds":"♦", "Clubs":"♣"}
names = ["Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"]
card_packs = [[kind, [kinds[kind]+name for name in names]] for kind in kinds]
treeData = sg.TreeData()
for pack_name, card_pack in card_packs:
treeData.insert("", str(pack_name), str(pack_name), [], icon=None)
for card in card_pack:
card_name = card
treeData.insert(str(pack_name), str(card_name), str(card_name), [], icon=None)
sg.theme("LightGrey1")
tree = sg.Tree(
treeData,
font=("Helvetica", 16),
col0_width=30,
enable_events=True,
show_expanded=True,
key="-TREE-",
)
delete_button = sg.Button("Delete Pack", disabled=True)
layout = [
[sg.Text("All your Packs:", font=("Calibri", 24))],
[tree],
[delete_button],
]
window = sg.Window("Memory Game", layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
window.close()