matlab gui显示缺失,Matlab Guide GUI列表框间歇性消失,错误似乎已过时。
我正在使用指南构建一个简单的Matlab图形用户界面。我有一个物品清单。大多数情况下,它按预期工作,但有时(通常在我用指南编辑图形后)填充列表框会导致它与此消息一起消失:Warning: single-selection listbox control requires a scalar ValueControl will not be rendered until all of its para
我正在使用指南构建一个简单的Matlab图形用户界面。我有一个物品清单。大多数情况下,它按预期工作,但有时(通常在我用指南编辑图形后)填充列表框会导致它与此消息一起消失:
Warning: single-selection listbox control requires a scalar Value
Control will not be rendered until all of its parameter values are valid
这种行为不利于调试!当我跨过时,它会像预期的那样工作(我怀疑它是一种线程竞赛或其他什么)。此外,在相同的条件下,它通常在重新启动matlab环境后消失。
在这个错误上找到的所有文档都引用了以前的/古老版本的matlab(我使用的是r2100a)。
任何关于这个主题的想法或信息都将非常感谢!
编辑:多亏了米哈伊尔,我似乎解决了这个问题。我在这里发布我的代码以备将来参考。
经过大量的调试打印和疯狂的点击之后,我发现有时当您询问列表框所选内容时,会得到一个空的结果。这和其他问题使事情变得一团糟。我将所有的编写交互都移到了列表框中,并编写了一些测试代码,以确保事情按它们应该的方式进行。
请注意,这已经在我自己的环境中进行了测试(在R2010A上),并且没有广泛测试。另外,代码有点多余,但它还是让我感觉很好。(I.
itemcount
不能小于0…)
function ensure_listbox_ok(handles)
%check to make sure it does not suck - ask what it has
thestrings = get(handles.listbox_files, 'String');
selection = get(handles.listbox_files, 'Value');
itemcount = length(thestrings);
betterselection = selection;
if(itemcount <= 0)
betterselection = 1;
else
if(selection > itemcount)
betterselection = itemcount;
end
end
%never use zero!!!! even if 1 is out of bounds.
if(isempty(betterselection) || betterselection <= 0)
betterselection = 1;
end
%uncomment for debug logging
%display(['Was: ' num2str(selection) ', cleaned: ' num2str(betterselection)]);
%update if we are out of bounds.
if(isempty(selection) || betterselection ~= selection)
set(handles.listbox_files, 'Value', betterselection);
end
更多推荐


所有评论(0)