appJar - ListBox/OptionBox 小部件在 select 上调用函数
appJar - ListBox/OptionBox widget call a function on select
我最近开始玩 appJar python 模块,但我在使用它的小部件时遇到了困难,即 ListBox http://appjar.info/pythonWidgets/#listbox and OptionBox http://appjar.info/pythonWidgets/#optionbox。
我无法找到当 selected ListBox 或 OptionBox 中的项目时如何调用函数。我找到了这个语法,但我找不到在哪里定义我想调用的函数:
.selectListItem(title, item, callFunction=True)
.changeOptionBox(title, newOptions, index, callFunction=False)
这是我目前拥有的代码。如您所见,我能够打印出 selected 值,但是通过单击按钮调用方法。
from appJar import gui
def press(btn):
if btn == "Cancel":
app.stop()
elif btn == "Show":
list_select()
else:
print('not defined yet')
def list_select():
app.infoBox("Info", "You selected " + app.getOptionBox("optionbox") + "\nBrowsing " + app.getListBox("list")[0])
app = gui("Database Editor", "500x500")
app.addOptionBox("optionbox", ["a", "b", "c", "d"])
app.addListBox("list", ["one", "two", "three", "four"])
app.addButtons(["Show", "Cancel"], press)
app.go()
有没有人知道,我怎样才能直接在 select 上打印出这些值?
我想通了!事实上,ChangeFunction 可以通过事件函数 http://appjar.info/pythonEvents/#types-of-event 触发(正如我在评论中发布的那样)。
我用这两个事件来做这件事:
app.setOptionBoxChangeFunction("optionbox", opt_changed)
app.setListBoxChangeFunction("list", lst_changed)
完整的工作代码在这里:
from appJar import gui
def opt_changed(opt):
print(app.getOptionBox("optionbox"))
def lst_changed(lst):
print(app.getListBox("list")[0])
def press(btn):
if btn == "Cancel":
app.stop()
elif btn == "Show":
list_select()
else:
print('not defined yet')
def list_select():
app.infoBox("Info", "You selected " + app.getOptionBox("optionbox") + "\nBrowsing " + app.getListBox("list")[0])
app = gui("Database Editor", "500x500")
app.addOptionBox("optionbox", ["a", "b", "c", "d"])
app.addListBox("list", ["one", "two", "three", "four"])
app.setOptionBoxChangeFunction("optionbox", opt_changed)
app.setListBoxChangeFunction("list", lst_changed)
app.addButtons(["Show", "Cancel"], press)
app.go()
我最近开始玩 appJar python 模块,但我在使用它的小部件时遇到了困难,即 ListBox http://appjar.info/pythonWidgets/#listbox and OptionBox http://appjar.info/pythonWidgets/#optionbox。
我无法找到当 selected ListBox 或 OptionBox 中的项目时如何调用函数。我找到了这个语法,但我找不到在哪里定义我想调用的函数:
.selectListItem(title, item, callFunction=True)
.changeOptionBox(title, newOptions, index, callFunction=False)
这是我目前拥有的代码。如您所见,我能够打印出 selected 值,但是通过单击按钮调用方法。
from appJar import gui
def press(btn):
if btn == "Cancel":
app.stop()
elif btn == "Show":
list_select()
else:
print('not defined yet')
def list_select():
app.infoBox("Info", "You selected " + app.getOptionBox("optionbox") + "\nBrowsing " + app.getListBox("list")[0])
app = gui("Database Editor", "500x500")
app.addOptionBox("optionbox", ["a", "b", "c", "d"])
app.addListBox("list", ["one", "two", "three", "four"])
app.addButtons(["Show", "Cancel"], press)
app.go()
有没有人知道,我怎样才能直接在 select 上打印出这些值?
我想通了!事实上,ChangeFunction 可以通过事件函数 http://appjar.info/pythonEvents/#types-of-event 触发(正如我在评论中发布的那样)。
我用这两个事件来做这件事:
app.setOptionBoxChangeFunction("optionbox", opt_changed)
app.setListBoxChangeFunction("list", lst_changed)
完整的工作代码在这里:
from appJar import gui
def opt_changed(opt):
print(app.getOptionBox("optionbox"))
def lst_changed(lst):
print(app.getListBox("list")[0])
def press(btn):
if btn == "Cancel":
app.stop()
elif btn == "Show":
list_select()
else:
print('not defined yet')
def list_select():
app.infoBox("Info", "You selected " + app.getOptionBox("optionbox") + "\nBrowsing " + app.getListBox("list")[0])
app = gui("Database Editor", "500x500")
app.addOptionBox("optionbox", ["a", "b", "c", "d"])
app.addListBox("list", ["one", "two", "three", "four"])
app.setOptionBoxChangeFunction("optionbox", opt_changed)
app.setListBoxChangeFunction("list", lst_changed)
app.addButtons(["Show", "Cancel"], press)
app.go()