Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:46   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何防止Matlab GUI中单选按钮的怪异行为?

我有一个带有两个单选按钮的gui(都在同一个uibutton组上),在调用某些内部gui函数期间,我发现可以检查两个单选按钮。

是matlab gui的某个已知错误,还是可以通过单选按钮的某些属性来防止此行为?

我试图关闭单选按钮的“ interruptble”和“ BusyAction”属性,但是仍然可以在gui繁忙时检查两者。



回答:

尽管在不同的情况下,我看到的效果与您观察到的效果相似。但是,这是预期的行为,因为即使应用程序在后台繁忙,默认情况下,GUI仍应接受输入-然后由应用程序决定是否处理此输入。

您可以通过几种不同的方式明确地阻止输入被接受:
  • 在响应单选按钮单击的回调中,可以在长时间处理之前禁用单选按钮。如果单选按钮是按钮组中唯一的控件,则可以通过获取单选按钮的句柄,禁用它们并使用DRAWNOW刷新GUI来轻松地在按钮组的SelectionChangeFcn执行此操作。然后,您将在处理完成后启用单选按钮。

    h = get(get(hObject, 'Parent'), 'Children'); set(h, 'Enable', 'off'); drawnow; %# %# LONG PROCESSING %# set(h, 'Enable', 'on');
  • 以与上述类似的方式使用BLURFIGURE在处理期间禁用整个 GUI。使用这种方法,您可以提供一个“ 取消”按钮。

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 19:36


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.