这是一个非常奇怪的问题,因为我很确定逻辑是正确的,但它仍然无效。因此,当GUI启动时,在启动函数中,我使用以下代码行为每个按钮设置大多数按钮,Kbutton,Bbutton等。:
set(handles.Kbutton,'Enable','off');
set(handles.Bbutton,'Enable','off');
然后,当用户点击uitable中的任何单元格时,我使用单元格选择回调来获取有关单元格内容的信息,并重新激活从那时起可以使用的按钮:
set(handles.Kbutton,'Enable','on');
set(handles.Bbutton,'Enable','on');
直到现在一切正常。 然后用户点击一个按钮,比如Kbutton,由于按钮的回调功能,底层功能被执行。一旦方法准备就绪,我想将按钮返回到它们的初始状态,即未激活。所以逻辑告诉我,重新将最初的代码行放在回调函数的末尾并完成:
set(hObject,'Enable','off');
drawnow;
set(handles.BButton,'Enable','off');
drawnow;
上面代码段中的第一行代码,指的是触发回调的按钮,而BButton是GUI中的任何其他按钮。
由于一些奇怪的原因,只有第二个被启用。即触发回调的按钮保持启用状态:/
有没有人遇到同样的问题? 有什么想法吗?
提前致谢
答案 0 :(得分:0)
尝试更改
set(hObject,'Enable','off');
到
set(handles.Kbutton,'Enable','off');