waitbar
대기 표시줄 대화 상자 만들기 또는 업데이트
설명
참고
앱 디자이너 및 uifigure
함수로 만든 앱에서는 uiprogressdlg
가 추가적인 사용자 지정 옵션을 제공하기 때문에 waitbar
보다 권장됩니다.
는 지정된 메시지를 갖는 대기 표시줄이 포함된 비모달 대화 상자를 만듭니다. 대기 표시줄은 소수 길이 f
= waitbar(x
,msg
)x
입니다. 대화 상자는 대화 상자를 제어하는 코드가 대화 상자를 닫거나, 사용자가 대화 상자 제목 표시줄의 닫기 버튼(X)을 클릭할 때까지 열려 있습니다. Figure
객체는 f
로 반환됩니다.
여러 앱 창, MATLAB® 바탕 화면 또는 Simulink®에 대기 표시줄 대화 상자를 표시하는 한편, 대기 표시줄 대화 상자에 응답하기 전에 상호 작용할 수 있도록 하려면 waitbar
함수를 사용하십시오.
는 대화 상자에서 f
= waitbar(x
,msg
,Name,Value
)figure
속성을 설정하는 하나 이상의 이름-값 쌍의 인수를 사용하여 옵션을 추가로 지정합니다. 예를 들어, 'Name','Progress'
는 대화 상자 이름을 Progress로 설정합니다. 다른 모든 입력 인수 다음에 이름-값 쌍 인수를 지정합니다.
예제
기본 대기 표시줄 대화 상자 만들기
코드의 세 지점에서 대기 표시줄의 소수 길이와 메시지를 업데이트하는 대기 표시줄 대화 상자를 만듭니다.
다음 코드를 사용하여 시간이 오래 걸리는 계산 수행을 시뮬레이션합니다. pause
함수는 첫 번째 대기 표시줄 대화 상자의 figure 객체를 후속 waitbar
함수 호출에 전달합니다. 이러한 방식으로 figure 객체를 전달하면 대화 상자가 다시 생성되지 않고 각 시점에서 업데이트됩니다. 시뮬레이션된 계산이 완료되면 대화 상자가 닫힙니다.
function basicwaitbar f = waitbar(0,'Please wait...'); pause(.5) waitbar(.33,f,'Loading your data'); pause(1) waitbar(.67,f,'Processing your data'); pause(1) waitbar(1,f,'Finishing'); pause(1) close(f) end
대기 표시줄 메시지 업데이트 및 취소 버튼 추가하기
취소 버튼을 추가하여 진행 중인 계산을 사용자가 중지할 수 있도록 합니다.
다음 코드를 사용하여 for
루프 반복을 통해 pi의 값에 수렴하도록 하면 반복할 때마다 대기 표시줄과 메시지가 업데이트됩니다. 사용자가 취소 버튼을 클릭하면 MATLAB은 Figure 애플리케이션 데이터(appdata
)에서 논리형 플래그 'canceling'
을 1(true)로 설정합니다. 다음 코드는 for 루프 내에서 이 값을 테스트하고 플래그 값이 1
이면 루프를 종료합니다.
CreateCancelBtn
콜백을 문자형 벡터 값으로 설정합니다. 이러한 콜백 코드의 경우처럼, 값에 의해 지정된 코드가 단순한 경우가 아니라면 이 방법은 권장되지 않습니다. 자세한 내용은 프로그래밍 방식으로 만든 앱에 대한 콜백 만들기 항목을 참조하십시오.
function approxpi f = waitbar(0,'1','Name','Approximating pi...',... 'CreateCancelBtn','setappdata(gcbf,''canceling'',1)'); setappdata(f,'canceling',0); % Approximate pi^2/8 as: 1 + 1/9 + 1/25 + 1/49 + ... pisqover8 = 1; denom = 3; valueofpi = sqrt(8 * pisqover8); steps = 20000; for step = 1:steps % Check for clicked Cancel button if getappdata(f,'canceling') break end % Update waitbar and message waitbar(step/steps,f,sprintf('%12.9f',valueofpi)) % Calculate next estimate pisqover8 = pisqover8 + 1 / (denom * denom); denom = denom + 2; valueofpi = sqrt(8 * pisqover8); end delete(f) end
입력 인수
x
— 대기 표시줄의 소수 길이
실수
대기 표시줄의 소수 길이로, 0
과 1
사이의 실수로 지정됩니다. 일반적으로 x
의 그다음 값은 증가하는 값입니다. 값이 감소할 경우 대기 표시줄은 역방향으로 진행됩니다.
예: .75
msg
— 대기 표시줄 메시지
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
대기 표시줄 메시지로, 문자형 벡터로 구성된 셀형 배열, 문자형 벡터 또는 string형 배열로 지정됩니다. 이 메시지는 대화 상자 내에, 진행률 표시줄 위에 표시됩니다.
메시지를 문자형 벡터로 지정할 경우, 길이가 긴 메시지는 대화 상자 크기에 맞게 줄 바꿈됩니다.
메시지를 문자형 벡터로 구성된 셀형 배열로 지정할 경우, 각 배열 요소 사이에 줄 바꿈이 적용됩니다. 길이가 긴 요소는 대화 상자의 크기에 맞게 줄 바꿈됩니다.
예: 'Please Wait'
예: {'Please wait', 'The operation is processing'}
f
— figure 객체
figure 객체
이전에 만든 대기 표시줄 대화 상자의 figure 객체로, figure 객체가 생성되었을 때 사용된 출력 변수로 지정됩니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: 'Name','Wait Bar'
참고
여기에 나와 있는 속성은 설정 가능한 속성의 일부에 불과합니다. 전체 목록을 보려면 Figure 속성를 참조하십시오.
CreateCancelBtn
— 취소 버튼 콜백
함수 핸들 | 셀형 배열 | 문자형 벡터
취소 버튼 콜백으로, 함수 핸들, 셀형 배열 또는 문자형 벡터(권장되지 않음)로 지정됩니다. MATLAB은 취소 버튼 콜백과 figure의 CloseRequestFcn
콜백 값을 callback
인수 값에 지정된 명령으로 설정합니다. 자세한 내용은 프로그래밍 방식으로 만든 앱에 대한 콜백 만들기 항목을 참조하십시오.
참고
CreateCancelBtn
콜백을 지정할 경우 delete
함수를 호출하여 대기 표시줄 대화 상자를 제거합니다. CreateCancelBtn
콜백을 지정하면 close
함수가 대화 상자를 닫지 않으며 취소 버튼과 닫기(X) 버튼이 응답하지 않습니다. 이러한 상황은 CreateCancelBtn
콜백이 재귀적으로 자신을 반복 호출하기 때문입니다. 이러한 상황에서는 다음 예제처럼 코드를 사용하여 강제로 대기 표시줄을 제거해야 합니다.
set(groot,'ShowHiddenHandles','on') delete(get(groot,'Children'))
예: waitbar(.5,'Processing','CreateCancelBtn',@myfun)
은 CreateCancelBtn
콜백 함수를 함수 핸들로 지정합니다.
예: waitbar(.5,'Processing','CreateCancelBtn',{@myfun,x})
는 CreateCancelBtn
콜백 함수를 셀형 배열로 지정합니다. 이 경우 함수는 입력 인수 x
를 받습니다.
Name
— 이름
''
(디폴트 값) | 문자형 벡터 | string형 스칼라
Figure의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.
예: figure('Name','Results')
는 Figure의 이름을 'Results'
로 설정합니다.
기본적으로 이 이름은 'Figure n'
이며, 여기서 n
은 정수입니다. Name
속성을 지정하면 Figure의 제목이 'Figure n: name'
이 됩니다. Name
값만 표시하려면 IntegerHandle
이나 NumberTitle
을 'off'
로 설정하십시오.
Position
— 그리기 가능 영역의 위치와 크기
[left bottom width height]
그리기 가능 영역의 위치와 크기로, [left bottom width height]
형식의 벡터로 지정됩니다. Figure 테두리, 제목 표시줄, 메뉴 모음, 도구 모음은 이 영역에서 제외됩니다.
다음 표에서는 Position
벡터의 각 요소를 설명합니다.
요소 | 설명 |
---|---|
left | 주 디스플레이의 왼쪽 가장자리부터 창의 왼쪽 내부 가장자리까지의 거리. 둘 이상의 모니터를 사용하는 시스템에서는 이 값이 음수일 수 있습니다. Figure가 도킹된 경우 이 값은 MATLAB 데스크탑 내의 Figure 패널에 대해 상대적입니다. |
bottom | 주 디스플레이의 하단 가장자리부터 창의 내부 하단 가장자리까지의 거리. 둘 이상의 모니터를 사용하는 시스템에서는 이 값이 음수일 수 있습니다. Figure가 도킹된 경우 이 값은 MATLAB 데스크탑 내의 Figure 패널에 대해 상대적입니다. |
width | waitbar의 오른쪽과 왼쪽 내부 가장자리 사이의 거리. |
height | 창의 상단과 하단 내부 가장자리 사이의 거리. |
모든 측정값은 Units
속성으로 지정된 단위로 표시됩니다.
Figure가 도킹되어 있으면 Figure의 Position
속성을 지정할 수 없습니다.
MATLAB Online™에서는 Position
벡터의 bottom
요소와 left
요소가 무시됩니다.
테두리, 제목 표시줄, 메뉴 모음, 도구 모음을 포함하는 완전한 창을 배치하려면 OuterPosition
속성을 사용하십시오.
참고
Windows® 운영 체제에서는 최소 창 너비와 최대 창 크기가 강제로 적용됩니다. 이 제한값을 벗어나는 Figure 크기를 지정할 경우 Figure는 사용자가 지정한 크기가 아니라 이 제한 크기로 표시됩니다.
Units
— 측정 단위
'pixels'
(디폴트 값) | 'normalized'
| 'inches'
| 'centimeters'
| 'points'
| 'characters'
측정 단위로, 다음 표의 값 중 하나로 지정됩니다.
단위 값 | 설명 |
---|---|
'pixels' (디폴트 값) | 픽셀. R2015b부터, 픽셀 단위의 거리는 Windows와 Macintosh 시스템에서 시스템 해상도와 무관하게 적용됩니다. 즉, 다음과 같습니다.
Linux® 시스템에서 픽셀 크기는 시스템 해상도에 의해 결정됩니다. |
'normalized' | 이 단위는 부모 컨테이너에 대해 정규화됩니다. 컨테이너의 왼쪽 아래 코너는 (0,0) 에 매핑되고 오른쪽 위 코너는 (1,1) 에 매핑됩니다. |
'inches' | 인치. |
'centimeters' | 센티미터. |
'points' | 포인트. 1포인트는 1/72인치와 같습니다(1인치 = 2.54cm). |
'characters' | 이 단위는 다음과 같이 그래픽스 root 객체의 디폴트 uicontrol 글꼴을 기반으로 합니다.
디폴트 uicontrol 글꼴에 액세스하려면 |
MATLAB은 모든 단위를 부모 객체의 왼쪽 아래 코너부터 측정합니다.
이 속성은 Position
속성에 영향을 미칩니다. Units
속성을 변경하는 경우, 디폴트 값을 상정하는 다른 함수에 영향을 미치지 않도록 계산을 완료한 후에 이 속성값을 디폴트 값으로 복원하는 것이 좋습니다.
Units
속성과 Position
속성을 지정하는 순서에 따라 다음과 같이 영향을 미칩니다.
Position
속성보다 먼저Units
를 지정하면 MATLAB은 지정한 단위를 사용하여Position
을 설정합니다.Position
속성 다음에Units
속성을 지정하면 MATLAB은 디폴트Units
를 사용하여 위치를 설정합니다. 그런 다음 MATLAB은Position
값을 지정한 단위의 상응하는 값으로 변환합니다.
WindowStyle
— 창 스타일
'normal'
(디폴트 값) | 'modal'
| 'docked'
창 스타일로, 다음 중 하나로 지정됩니다.
'normal'
— Figure 창은 다른 창에 독립적이며, Figure가 표시되는 동안 다른 창에 액세스할 수 있습니다.'modal'
— Figure는 기존의 모든 Figure 창 위에 표시되어, 맨 앞 Figure가 모달 상태로 존재하는 한 기존 Figure에 액세스할 수 없게 됩니다. 그러나 모달 Figure 이후에 새로 생성된 Figure는 모두 표시됩니다.여러 모달 창이 있는 경우 가장 최근에 생성된 창에 포커스가 유지되며, 이 가장 최근에 생성된 창은 숨겨지도록 설정되거나 일반 창 스타일로 돌아가거나 삭제될 때까지 다른 모든 창 위에 계속 남아 있습니다. 창이 사라지거나 WindowStyle normal로 돌아가거나 삭제되면 포커스는 마지막으로 포커스가 있던 창으로 복귀됩니다.
'docked'
— Figure가 데스크탑 또는 문서 창에 표시됩니다.WindowStyle
속성이'docked'
로 설정되어 있으면DockControls
속성을'off'
로 설정할 수 없습니다. MATLAB Online에서는'docked'
옵션이 지원되지 않습니다.
참고
다음은 WindowStyle
속성의 몇 가지 중요한 특성과 권장되는 모범 사례입니다.
UI 창을 만들 때는 항상
WindowStyle
속성을 지정하십시오. 또한 Figure의Resize
,Position
,OuterPosition
속성 중 하나를 설정하려는 경우에는 먼저WindowStyle
속성을 설정하십시오.Figure의
WindowStyle
속성은 Figure가 표시되도록 설정되거나 Figure에 자식이 포함된 경우 등 언제든지 사용자가 변경할 수 있습니다. 그러나 일부 시스템에서는 이 속성을 설정하면 시스템의 일반 창과 모달 창 구현 방식에 따라 Figure가 깜박이거나 사라졌다가 다시 나타날 수 있습니다. 최적의 시각적 결과를 얻으려면 생성 시에 또는 Figure가 표시되지 않을 때WindowStyle
속성을 설정하십시오.Figure에서
reset
을 호출해도WindowStyle
속성의 값은 변경되지 않습니다.
모달 창 스타일 동작
WindowStyle
이 'modal'
로 설정된 경우, Figure 창은 창이 표시되어 있는 한 모든 MATLAB 창에 대한 모든 키보드와 마우스 동작을 트래핑합니다. MATLAB이 아닌 다른 애플리케이션에 속해 있는 창에는 영향을 미치지 않습니다.
모달 Figure에 포커스가 있는 상태에서 Ctrl+C를 입력하면 해당 Figure는 'normal'
WindowStyle
속성 설정으로 되돌아갑니다. 따라서 사용자가 명령줄에 입력할 수 있습니다.
WindowStyle
속성이 'modal'
로 설정되고 Visible
속성이 'off'
로 설정된 Figure는 MATLAB에서 표시 가능해질 때까지 모달 형식으로 동작하지 않습니다. 따라서 모달 창을 삭제하는 대신 나중에 재사용할 수 있도록 숨겨둘 수 있습니다.
모달 Figure는 메뉴의 자식, 내장 메뉴 또는 도구 모음을 표시하지 않습니다. 그러나 모달 Figure에서 메뉴를 만들거나 메뉴의 자식이 있는 Figure에서 WindowStyle
속성 설정을 'modal'
로 변경하는 것은 오류가 아닙니다. 이유는, Menu
객체가 존재하고 있으며 Figure가 이를 유지하기 때문입니다. Figure의 WindowStyle
속성을 'normal'
로 재설정하면 메뉴가 표시됩니다.
세부 정보
모달 대화 상자
모달 대화 상자에서는 대화 상자 조작이 끝나기 전에 다른 MATLAB 창과 상호 작용을 할 수 없습니다.
비모달 대화 상자
비모달 대화 상자에서는 대화 상자의 조작이 끝나기 전에 다른 MATLAB 창과 상호 작용을 할 수 있습니다. 비모달 대화 상자는 일반 대화 상자라고도 합니다.
대기 표시줄
왼쪽에서 오른쪽으로 점진적으로 표시줄을 색으로 채움으로써 계산 진행에 따른 계산 완료율을 나타내는 표시줄입니다. 대기 표시줄은 진행률 표시줄이라고도 합니다.
팁
단일 창 앱 디자이너 또는
uifigure
기반 앱에 대한 모달 진행률 대화 상자를 생성하려면uiprogressdlg
함수를 대신 사용하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
close
| delete
| getappdata
| setappdata
| uiprogressdlg
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)