![]() |
如何防止Matlab GUI中单选按钮的怪异行为?
我有一个带有两个单选按钮的gui(都在同一个uibutton组上),在调用某些内部gui函数期间,我发现可以检查两个单选按钮。
是matlab gui的某个已知错误,还是可以通过单选按钮的某些属性来防止此行为? 我试图关闭单选按钮的“ interruptble”和“ BusyAction”属性,但是仍然可以在gui繁忙时检查两者。 [B]回答:[/B] 尽管在不同的情况下,我看到的效果与您观察到的效果相似。但是,这是预期的行为,因为即使应用程序在后台繁忙,默认情况下,GUI仍应接受输入-然后由应用程序决定是否处理此输入。 您可以通过几种不同的方式明确地阻止输入被接受: [LIST][*]在响应单选按钮单击的回调中,可以在长时间处理之前禁用单选按钮。如果单选按钮是按钮组中唯一的控件,则可以通过获取[URL="http://www.mathworks.com/help/techdoc/ref/drawnow.html"]单选[/URL]按钮的句柄,禁用它们并使用[URL="http://www.mathworks.com/help/techdoc/ref/drawnow.html"]DRAWNOW[/URL]刷新GUI来轻松地在按钮组的SelectionChangeFcn执行此操作。然后,您将在处理完成后启用单选按钮。 h = get(get(hObject, 'Parent'), 'Children'); set(h, 'Enable', 'off'); drawnow; %# %# LONG PROCESSING %# set(h, 'Enable', 'on');[*]以与上述类似的方式使用[URL="http://www.mathworks.com/matlabcentral/fileexchange/30666-blurfigure-blurs-and-prevents-interaction-on-a-figure-window"]BLURFIGURE[/URL]在处理期间禁用[I]整个[/I] GUI。使用这种方法,您可以提供一个“ [B]取消”[/B]按钮。 [/LIST] [url=https://stackoverflow.com/questions/5420811]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 23:16。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.