Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中制作waitbar_Matlab_User Interface_Progress Bar_Modal Dialog - Fatal编程技术网

如何在MATLAB中制作waitbar

如何在MATLAB中制作waitbar,matlab,user-interface,progress-bar,modal-dialog,Matlab,User Interface,Progress Bar,Modal Dialog,我正在开发一个MatlabGUI,在这里我必须显示一个进度条。我对waitbar函数有两个问题: 我想让进度条成为模态,这样当进度条显示时,用户就不能在GUI上做任何其他事情 在该栏的右上角有最小化按钮和关闭按钮(与其他窗口非常相似)。如果按关闭按钮,进度条将关闭,我希望隐藏或禁用此按钮,以便用户无法关闭进度条 如何实现这些行为?对于第一个问题,您应该研究Matlab中的线程。您可能需要并行计算工具箱来访问必要的函数。你可以找到更多 就2号而言。您应该能够覆盖GUI代码中的关闭函数 它将是这样的

我正在开发一个MatlabGUI,在这里我必须显示一个进度条。我对
waitbar
函数有两个问题:

  • 我想让进度条成为模态,这样当进度条显示时,用户就不能在GUI上做任何其他事情

  • 在该栏的右上角有最小化按钮和关闭按钮(与其他窗口非常相似)。如果按关闭按钮,进度条将关闭,我希望隐藏或禁用此按钮,以便用户无法关闭进度条


  • 如何实现这些行为?

    对于第一个问题,您应该研究Matlab中的线程。您可能需要并行计算工具箱来访问必要的函数。你可以找到更多

    就2号而言。您应该能够覆盖GUI代码中的关闭函数

    它将是这样的:

    function MyWaitBar_CloseRequestFcn(hObject, eventdata, handles)
    
    delete(hObject); % This of course deletes the object and we don't want this.  
    
    因此,只需将函数留空即可。但别忘了在某个时候关闭它

    示例:

    plot(sin(1:100))
    h = waitbar(0, 'Please wait...');
    set(h, 'WindowStyle','modal', 'CloseRequestFcn','');
    for i=1:10
        waitbar(i/10, h);
        pause(.5)
    end
    delete(h)
    

    通过将
    CloseRequestFcn
    设置为空字符串,单击关闭按钮将不起任何作用。您只需等待循环完成


    请注意,您仍然可以按Ctrl+c终止正在运行的计算(我认为这是一件好事,毕竟您不想打扰用户!)

    我忘了提到,但您必须将GUI为waitbar触发的任何计算/处理放在另一个线程上。我很确定,在处理GUI的过程中,您可以继续使用GUI。