我正在搜索字典,当它第一次被调用时,它会按预期工作,此后,它将在控制台中从appJar.appjar引发ItemLookupError。将打开一个新标签,但未加载预期数据
我尝试将其放在try / except中,除非引起问题的原始标签应该已删除,但不会删除。我希望保持打开原始标签。
来自appJar源代码
if text in self.widgetStore: raise ItemLookupError("Duplicate tabName: " + text)
其中widgetStore
是OrderedDict()
似乎是问题所在。
def search(): # FIXME raises a duplicate error when you search more than once
results = 0
search_term = app.getEntry('Input')
pattern = re.compile(f'.*{search_term}.*')
msg = ''
t = []
for k, v in data.items():
if re.match(pattern, k) or re.match(pattern, v):
t.append([k, v])
results += 1
if len(t) != 0:
t.insert(0, [f'{results} results for', search_term])
title = f'Search Results for {search_term}'
app.startTab(title)
app.addTable('Search Results', data=t)
app.stopTab()
else:
msg = f'No results found for {search_term}'
app.infoBox(msg, msg)