我对 Dearpygui 比较陌生,并且在尝试使用组合框使用组合项中另一个列表的字符串值从存储在 user_data 中的列表中回调指定的 int 值时遇到困难。这段代码不是我的实际代码,但解决了问题。
import dearpygui.dearpygui as dpg
dpg.create_context()
listA = ["a", "b", "c"]
listB = [2, 5, 8]
def getvalues(sender, data):
letter = dpg.get_value("char")
print(f"Sender: {sender}")
print(f"Letter: {letter}")
print(f"Data: {data}")
with dpg.window():
dpg.add_combo(label="letters", tag="char", items=listA)
dpg.add_button(label="Get", callback=getvalues, user_data=listB)
dpg.create_viewport(title='Custom Title', width=800, height=600)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()
对于这封信,我在组合中选择了该字母,但数据显示为“无”,我不知道应该如何编码。
我尝试对列表使用 .index() 来获取 ListA 的索引并将其下标为 ListB。我还尝试使用 dpg.set_value() 但这只是改变了信件的数据。请帮帮我!
使用 .index() 但从组合中获取值,如下所示:
listA = ["a", "b", "c"]
listB = [2, 5, 8]
def getvalues():
selectlistA = dpg.get_value("char")
if selectlistA in listA:
index = listA.index(selectlistA)
selectlistB = listB[index]
print(f"value: {selectlistB}")
with dpg.window():
dpg.add_combo(label="letters", tag="char", items=listA)
button = dpg.add_button(label="Get", callback=getvalues)