【问题标题】:Matlab GUI button reactionMatlab GUI 按钮反应
【发布时间】:2015-04-21 21:07:54
【问题描述】:

我只是想用 MATLAB GUI 编写一个反应测试。

我有一个按钮,每次点击后,它会随机出现在一个位置,然后显示下一次点击所需的时间。

现在我希望这个按钮在点击 10 次后消失。

我该如何编程,在第 10 次点击后它只执行“全部关闭;”?

【问题讨论】:

  • 您的主要问题是您需要在某处保留一个计数器,但您的 GUI 回调函数没有任何持久变量。问问自己:你可以在哪里保存一个“计数器”变量,在一个你可以在调用你的 GUI 回调函数之间访问的地方?

标签: matlab user-interface matlab-guide


【解决方案1】:

这里有一些你想要的代码。

正如@Li-aung 提到的,我添加了一个计数器,用于跟踪按钮被按下的次数。计数器存储在图的handles结构中;但是,为简单起见,您可以将其设为全局变量。

这是带有 cmets 的代码:

function RandomButton(~)


hFig = figure('Position',[100 100 200 200],'Visible','off');

handles.CounterText = uicontrol('Style','text','Position',[50 150 60 30],'String','Counter')
handles.DisplayCounterText = uicontrol('Style','text','Position',[50 100 60 30],'String','0')

handles.Button = uicontrol('Style','pushbutton','position',[50 50 60 30],'String','Push here','Callback',@(s,e) Push);

handles.PushCounter = 0; %// Initialize counter

movegui(gcf,'center')
set(hFig,'Visible','on')

guidata(hFig,handles)

    function Push

        handles = guidata(hFig);

        handles.PushCounter = handles.PushCounter +1;

        set(handles.DisplayCounterText,'String',num2str(handles.PushCounter));

        if handles.PushCounter < 10 %// Assign condition to stop.

        set(hFig,'Visible','off');
        set(hFig,'Position',[1000*rand(1) 1000*rand(1) 200 200]); %// Assign random position 

        set(hFig,'Visible','on');

        guidata(hFig,handles) %// Update handles structure. Important!

        else

            close all
        end

    end
end

这是图形用户界面的截图:

希望能帮助您入门!

【讨论】:

  • 所以@freaky 你有没有尝试我的建议?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2012-11-04
  • 1970-01-01
  • 2015-08-11
  • 2015-08-13
相关资源
最近更新 更多