matlab GUI中的waitbar

waitbar

作用:

這個函數的作用是打開或者更新進度條。

語法結構有:

(1)h = waitbar(x,'message')

(2)waitbar(x,'message','CreateCancelBtn','button_callback')

(3)waitbar(x,'message',property_name,property_value,...)

(4)waitbar(x)

(5)waitbar(x,h)

(6)waitbar(x,h,'updated message')

應用1:

語法結構h = waitbar(x,'message'); %其中x必須為0到1之間的數,message為顯示的信息,其實這個x大于1也可以啊,但是進度條總在滿的狀態,x是多少就對應進度條顯示的比例是多少

舉例:hwait=waitbar(0,'請等待>>>>>>>>'); %這個0顯示的是進度條的位置,因為是0,就在起始位置,還有就是這個hwait就是這個waitbar函數的句柄

得到:

應用2

waitbar(x,h,'updated message'); % x為顯示的進度,必須在0到1之間;h為所建立的waitbar的句柄,updated message為實時顯示的信息,常地用于for循環中。

舉例:

steps=100;

hwait=waitbar(0,'請等待>>>>>>>>');

for k=1:steps

if steps-k<=5

waitbar(k/steps,hwait,'即將完成');

pause(0.05);

else

str=['正在運行中',num2str(k),'%'];

waitbar(k/steps,hwait,str);

pause(0.05);

end;

end;

close(hwait); %注意必須添加close函數,也就是說運行完成后讓此進度條消失。

結果如下所示:

顯示正在運行中:

顯示即將完成:

應用3:

語法結構waitbar(x,'message','CreateCancelBtn','button_callback');%為的是在進度條上添加取消按鈕,用戶可以通過進度條來終止程序的運行。

舉例:

編寫函數如下;

function [valueofpi step] = approxpi(steps)

% Converge on pi in steps iterations, displaying waitbar.

% User can click Cancel or close button to exit the loop.

% Ten thousand steps yields error of about 0.001 percent.

h = waitbar(0,'1','Name','Approximating pi...',...

'CreateCancelBtn',...

'setappdata(gcbf,''canceling'',1)');

setappdata(h,'canceling',0)

% Approximate as pi^2/8 = 1 + 1/9 + 1/25 + 1/49 + ...

pisqover8 = 1;

denom = 3;

valueofpi = sqrt(8 * pisqover8);

for step = 1:steps

% Check for Cancel button press

if getappdata(h,'canceling')

break

end

% Report current estimate in the waitbar's message field

waitbar(step/steps,h,sprintf('.9f',valueofpi))

% Update the estimate

pisqover8 = pisqover8 + 1 / (denom * denom);

denom = denom + 2;

valueofpi = sqrt(8 * pisqover8);

end

delete(h)%刪除進度條,不要去使用close函數關閉。

調用函數:

[estimated_pi steps] = approxpi(10000);

運行結果:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,523評論 0 17
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 奧運如期而至。坦白講,比起足球,我對大部分奧運項目熱情不夠,也只是看看新聞,聽聽身邊人神侃。但是,最近好多人說,今...
    萌芽兒MoodYard閱讀 392評論 2 6
  • 談過網絡關系,覺得那一瞬間揭開一個人.面具好可怕, 1. 有一次我準備去找她們一個keep的大姐姐加的微信,她把我...
    雅nmmm閱讀 480評論 2 1
  • 一切似乎是最好的安排,就如寫寫團定在了今天這個特別的日子開始。 對于父母健在的我來說,清明節于我沒有太多的感傷,一...
    微笑的周周閱讀 330評論 0 1