matlab - SciLab 复选框 UIControl 值不随状态变化?

标签 matlab scilab gui-builder

我正在尝试在 SciLab 中设计一个 GUI,它根据复选标记更新它的属性。例如:复选框可能会在回调期间启用和更改多个文本框的背景;或者按钮可能需要选择一定数量的复选框。

我的问题是我似乎无法根据回调期间的复选框状态为运行指令开发流程控制语句。我当前的 UIControl 元素如下所示:

handles.chkS11En=uicontrol(f,'unit','normalized','BackgroundColor',[0.8,0.8,0.8],'Enable','on','FontAngle','normal','FontName','helvetica','FontSize',[12],'FontUnits','points','FontWeight','normal','ForegroundColor',[0,0,0],'HorizontalAlignment','center','ListboxTop',[],'Max',[1],'Min',[0],'Position',[0.02140625,0.791119360625398,0.0803125,0.0369667],'Relief','flat','SliderStep',[0.01,0.1],'String','S11','Style','checkbox','Value',[0],'VerticalAlignment','middle','Visible','on','Tag','chkS11En','Callback','chkS11En_callback(handles)')

当我选中复选框时运行的回调是这样的:

cS11En = findobj('tag', 'chkS11En');     // checkbox option
tS11MagUpperBound = findobj('tag', 'txtS11MagUpperBound');  //edit box that is controlled

mprintf("%d\n",cS11En.Value);
if cS11En.Value == [1] then
    mprintf("Checked = on \n");
    set(tS11MagUpperBound,'BackgroundColor',[1,1,1]);
    set(tS11MagUpperBound,"Enable",'on');
    set(cS11Save,"Enable",'on');
elseif cS11En.Value == [0] then
    mprintf("Checked = off \n");
    set(tS11MagUpperBound,'BackgroundColor',[0.8,0.8,0.8]);
    set(tS11MagUpperBound,'Enable','off');
    set(cS11Save,"Enable",'off');
end

此代码的问题似乎是第二条路径 (Value = 1) 似乎永远不会运行,即使我不断切换复选框也是如此。我得到这样的输出:

0
Checked = off 
0
Checked = off 
0
Checked = off 
0
Checked = off 

为了重新加载检查元素,我做错了什么吗?我希望能够运行这两条路径,但是我似乎永远无法从复选框元素中获得值 1。有人对此有解决方案吗?谢谢!

最佳答案

如果有人想知道并通过谷歌或其他方式找到它,这就是我修复它的方法:

事实证明,当窗体关闭且脚本正在运行时,SciLab 有时不会清除所有 UI 变量。

解决方案是在每个程序的顶部添加几行,以清除所有变量、关闭所有表单并初始化变量。

基本上,添加这个:

// /////////////
// Lemon Pledge
// /////////////
mprintf("\n!!!!!!!!!!!!!!!!!!!\nCLEARING ALL VARIABLES\n!!!!!!!!!!!!!!!!!!!\n")
xdel(winsid());
clear;
clearglobal;

关于matlab - SciLab 复选框 UIControl 值不随状态变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13017138/

相关文章:

java - 如何使用 Netbeans GUI Builder 在 java swing 中设置选项卡式 Pane 的背景图像?

java - 将 Java 与 Matlab 一起使用 : passing Class type as a method argument

scilab - 在 Scilab 中生成符号插值多项式

algorithm - 找到球体中所有晶格​​点的最佳方法

physics - 使用 Scilab 求解微分方程组并绘制解

java - 如何在 NetBeans GUI Builder 中实现所见即所得?

matlab - 如何在多核上批量(多个作业)运行 simulink 模型?

matlab - Hoeffding 的 "D"(依赖)系数的 GPU 实现思路?

c++ - Mat 类型的 OpenCV 最大可能值

python - 一个好的 wxpython GUI 构建器?