簡體   English   中英

如何在MATLAB模式中創建waitbar

[英]How can I make waitbar in MATLAB modal

我正在開發一個MATLAB GUI,我必須顯示一個進度條。 我對waitbar函數有兩個問題:

  1. 我想使進度條模態,以便用戶在顯示進度條時不能在GUI上執行任何其他操作。

  2. 條形圖右上角有最小化按鈕和關閉按鈕(非常像任何其他窗口)。 如果按下關閉按鈕,進度條將關閉,我希望隱藏或禁用此按鈕,以便用戶無法關閉該欄。

我該如何實現這些行為?

例:

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來終止正在運行的計算(我認為這是一件好事,畢竟你不想惹惱用戶!)

對於數字1,您應該在Matlab中查看線程。 您可能需要並行計算工具箱才能訪問必要的功能。 你可以在這里找到更多

至於2號。 您應該能夠覆蓋GUI代碼中的close函數。

這將是這樣的:

function MyWaitBar_CloseRequestFcn(hObject, eventdata, handles)

delete(hObject); % This of course deletes the object and we don't want this.  

所以你只需將函數留空。 但不要忘記在某個時候關閉它!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM