我当前正在使用appJar
创建GUI:
from appJar import gui
listOne = ["first", "set", "of", "values"]
listTwo = ["second", "set", "of", "values"]
def reset(reset):
app.setOptionBox("optionBoxTwo", listTwo)
app=gui()
app.addOptionBox("optionBoxOne", ["foo", "bar"])
app.setOptionBoxChangeFunction("optionBoxOne", reset)
app.addOptionBox("optionBoxTwo", listOne)
app.go()
我有optionBoxOne
,这些内容在这个阶段是不相关的。更改此选项框的选择后,它将执行reset
函数。应为将optionBoxTwo
的值更改为listTwo
。但是,这不起作用,返回时返回以下错误:
这表明我只能更改当前显示的值,而不能更改要显示的值。例如,如果我将reset
函数改为:
然后函数将按预期执行。更改optionBoxOne
的值时,optionBoxTwo
的当前显示值将更改为"values"
。在
我想更改要显示的值。在添加选项框时,我尝试使用字典作为参数:
app.addOptionBox("optionBoxOne", {"listOne" : ["foo", "bar"], "listTwo" : ["something"]})
然后在函数中,我声明要显示的列表的键:
def reset(reset):
app.setOptionBox("optionBoxTwo", listTwo)
然而,这并不像预期的那样有效。相反,选项框中显示的值只是字典的键。在
如何以这种方式更改要在选项框中显示的值?我找到了一个解决方法,即删除选项框,然后用所需列表重新添加:
def reset(reset):
app.removeOptionBox("optionBoxTwo")
app.addOptionBox("optionBoxTwo", listTwo)
虽然这看起来有点便宜和不和谐。但它确实达到了预期的结果。在
根据您的代码,for循环似乎可以解决您的问题。也许可以试试这样的方法。在
这应该遍历列表中的所有值,并为每个值调用
app.setOptionBox
。在相关问题 更多 >
编程相关推荐