如何使用组合框中放入的另一个字符串值列表的输入来获取列表的整数值?

问题描述 投票:0回答:1

我对 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() 但这只是改变了信件的数据。请帮帮我!

list combobox dearpygui
1个回答
0
投票

使用 .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)
© www.soinside.com 2019 - 2024. All rights reserved.