JSL 帮助在更改组合框时更新面板框大家好,
我正在编写一些 JSL 代码,我希望它可以做一些类似于支持向量机的平台接口的事情(对于那些有 Pro 的人,对于那些没有的人,屏幕截图应该有助于进一步解释)。
我希望包含组合框的面板框根据用户对组合框的选择来更新和显示不同的选项。 对于 SVM 示例,我想做类似的事情:如果用户选择第一个组合框选项,它会生成一个更新的面板框,如第一个屏幕截图所示。 然后,如果用户选择下一个选项,面板框会更新以显示新选项,就像第二个屏幕截图一样。


组合框不允许 On Change() 调用,当组合框更改时,我似乎无法让函数调用起作用。 我正在考虑可能会进行 UpdateWindow 调用,但很难弄清楚如何正确地做到这一点。
任何建议表示赞赏。
谢谢!,
DS
脚本回复:JSL 帮助在更改组合框时更新面板框你好@ian_jmp ,
感谢您的快速反馈和帮助。 我确实需要对其进行一些修改,以便它只更改面板框的一部分而不是全部。
这个修改后的版本是我希望得到的,如果没有你的代码片段,我是做不到的。 谢谢!
Names Default To Here( 1 );
UInames = {"Option One", "Option Two"};
lublist = {Lineup Box( N Col( 3 ), Spacing( 3, 3 ), Text Box( "A" ), Text Box( "B" ), Number Edit Box( 7, 6 ) ),
Lineup Box( N Col( 3 ), Spacing( 3, 3 ), Text Box( "C" ), Text Box( "D" ), Number Edit Box( 10, 6 ) )};
cb = Combo Box(
UInames,
<<SETFUNCTION></SETFUNCTION>
谢谢!,
DS
回复:JSL 帮助在更改组合框时更新面板框这可能会让你开始:
NamesDefaultToHere(1);
UInames = {"UI One", "UI Two"};
UIList = {PanelBox(UInames[1], TextBox("One")), PanelBox(UInames[2], TextBox("Two"))};
cb = ComboBox(UInames, << SetFunction(
Function( {this, index},
(this << sib) << delete;
this << sibAppend(Eval(UIlist[index]))
)
)
);
NewWindow("Dynamic UI", LineUpBox(NCol(1), cb, Eval(UIlist[1])));