主要内容

ContextMenu속성

상황별메뉴의모양과동작제어

상황별메뉴는사용자가그래픽스객체나UI구성요소를마우스오른쪽버튼으로클릭할때표시되는메뉴입니다。uicontextmenu함수를사용하여상황별메뉴를만들고속성을설정합니다。속성값을변경하여,상황별메뉴의모양과동작을수정할수있습니다。다음과같이점@ @기법을사용하여특정상황별메뉴객체와속성을참조하십시오。uifigure또는数字함수를사용하여만든图를상황별메뉴의부모로지정할수있습니다。

FIG = ufigure;Cm = uicontextmenu(图);m = uimenu(cm,'Text','Go To File');fig.ContextMenu = cm;

콜백

모두 확장

콜백함수를여는상황별메뉴로,다음값중하나로지정됩니다。

  • 함수핸들。

  • 첫번째소가함수핸들셀형배열。이셀형배열의그다음소들은콜백함수로전달할수입니다。

  • 유효한matlab®` ` ` ` `현식이포함된문자형벡터(권장되지않음)。Matlab은이현식을기본작업공간에서실행합니다。

콜백속성값을함수핸들,셀형배열또는문자형벡터로지정하는방법에대한자세한내용은指定回调函数항목을참조하십시오。

객체생성함수로,다음값중하나로지정됩니다。

  • 함수핸들。

  • 첫번째소가함수핸들셀형배열。이셀형배열의그다음소들은콜백함수로전달할수입니다。

  • 유효한matlab ` ` ` ` ` ` ` ` `현식이포함된문자형벡터(권장되지않음)。Matlab은이현식을기본작업공간에서실행합니다。

콜백을함수핸들,셀형배열또는문자형벡터로지정하는방법에대한자세한내용은앱디자이너에서콜백작성하기항목을참조하십시오。

이속성은matlab이객체를생성할때실행할콜백함수를지정합니다。MATLAB은CreateFcn콜백을실행하기전에모든속성값을초기화합니다。CreateFcn속성을지정하지않으면matlab은디폴트생성함수를실행합니다。

기존구성소에대해서는CreateFcn속성을설정해도아무효과가없습니다。

이속성을함수핸들또는셀형배열로지정하면생성중인객체에콜백함수의첫번째인수를사용하여액세스할수있습니다。이속성을함수핸들또는셀형배열로지정하지않은경우에는gcbo함수를사용하여객체에액세스하십시오。

객체삭제함수로,다음값중하나로지정됩니다。

  • 함수핸들。

  • 첫번째소가함수핸들셀형배열。이셀형배열의그다음소들은콜백함수로전달할수입니다。

  • 유효한matlab ` ` ` ` ` ` ` ` `현식이포함된문자형벡터(권장되지않음)。Matlab은이현식을기본작업공간에서실행합니다。

콜백을함수핸들,셀형배열또는문자형벡터로지정하는방법에대한자세한내용은앱디자이너에서콜백작성하기항목을참조하십시오。

이속성은matlab에서객체를삭제할때실행할콜백함수를지정합니다。Matlab은객체의속성을파괴하기전에DeleteFcn콜백을실행합니다。DeleteFcn속성을지정하지않으면matlab은디폴트삭제함수를실행합니다。

이속성을함수핸들또는셀형배열로지정하면삭제중인객체에콜백함수의첫번째인수를사용하여액세스할수있습니다。이속성을함수핸들또는셀형배열로지정하지않은경우에는gcbo함수를사용하여객체에액세스하십시오。

콜백실행컨트롤

모두 확장

콜백중단으로,“上”또는“关闭”나숫자형값또는논리값1真正的)또는0)으로지정됩니다。값“上”真正的와동일하고값“关闭”와동일합니다。따라서이속성의값을논리값으로사용할수있습니다。값은matlab.lang.OnOffSwitchState유형의on/off논리값으로저장됩니다。

이속성은실행중콜백을중단할수있는지여부를지정합니다。고려할콜백상태에는다음두가지가있습니다。

  • 실행중콜백은현재실행되고있는콜백입니다。

  • 化学式터럽트콜백은실행중콜백을중단하고자신이실행되려는콜백입니다。

MATLAB은콜백대기열을처리하는명령을실행할때마다콜백중단동작을결정합니다。이러한명령에는drawnow数字uifiguregetframe等待暂停가포함됩니다。

실행중콜백에이러한명령이포함되어있지않으면중단이발생하지않습니다。Matlab은먼저실행중콜백의실행을완료한다음터럽트콜백을실행합니다。

실행중콜백에이러한명령이포함되어있으면실행중콜백을소유한객체의可中断속성에서중단을발생시킬지여부를결정합니다。

  • 可中断값이“关闭”이면중단이발생하지않습니다。대신터럽트콜백을소유한객체의BusyAction속성이터럽트콜백을삭제할지아니면콜백대기열에추가할지결정합니다。

  • 可中断값이“上”이면중단이발생합니다。MATLAB이다음번콜백대기열을처리할때실행중콜백의실행을중지하고인터럽트콜백을실행합니다。터럽트콜백이완료된후에는matlab이실행중콜백의실행을재개합니다。

참고

콜백중단과실행은다음상황에서다르게동작합니다。

  • 터럽트콜백이DeleteFcnCloseRequestFcnSizeChangedFcn콜백중하나이면可中断속성값에관계없이중단이발생합니다。

  • 실행중콜백이현재等待함수를실행중이면可中断속성값에관계없이중단이발생합니다。

  • 터럽트콜백을计时器객체가소유한경우콜백은可中断속성값에관계없이예약된대로실행됩니다。

참고

중단이발생하면matlab은디스플레이또는속성의상태를저장하지않습니다。예를들어,다른콜백이실행될때gca또는gcf명령이반환하는객체가변경될수도있습니다。

콜백대기로,“队列”“取消”로지정됩니다。BusyAction속성은matlab이터럽트콜백의실행을처리하는방법을지정합니다。고려할콜백상태에는다음두가지가있습니다。

  • 실행중콜백은현재실행되고있는콜백입니다。

  • 化学式터럽트콜백은실행중콜백을중단하고자신이실행되려는콜백입니다。

BusyAction속성은다음조건이모두충족될때만콜백대기동작을결정합니다。

  • 실행중콜백에콜백대기열을처리하는drawnow数字uifiguregetframe等待또는暂停같은명령이포함되어있습니다。

  • 실행중콜백을소유하는객체의可中断속성값이“关闭”입니다。

이러한조건에서는터럽트콜백을소유하는객체의BusyAction속성값이matlab에서터럽트콜백을처리하는방식을결정합니다。BusyAction속성의가능한값은다음과같습니다。

  • “队列”-실행중콜백이실행을마치고나면터럽트콜백이처리되도록대기열에넣습니다。

  • “取消”—터럽트콜백을실행하지않습니다。

이속성은읽기전용입니다。

삭제상태로,matlab.lang.OnOffSwitchState유형의on/off논리값으로반환됩니다。

MATLAB은DeleteFcn콜백이실행을시작할때BeingDeleted속성을“上”으로설정합니다。BeingDeleted속성은구성소객체가더이상존재하지않을때까지“上”으로설정되어유지됩니다。

객체를쿼리하거나수정하기전에BeingDeleted속성의값을확하여이객체가곧삭제될것이아님을확합니다。

부모/자식

모두 확장

부모객체로,uifigure또는数字함수를사용하여만든数字객체로지정됩니다。부모图가지정되어있지않으면MATLAB은数字함수를호출하여부모역할을하는图를만듭니다。

이속성을대상数字객체로설정하여快捷菜单객체를다른图로이동할수있습니다。

상황별메뉴의자식으로,빈GraphicsPlaceholder菜单객체로구성된벡터로반환됩니다。

孩子们속성을사용해서는자식을추가하거나제거할수없습니다。자식의목록을보거나자식메뉴항목을재정렬하려면이속성을사용하십시오。이배열에서자식의순서는열려있는상황별메뉴에표시된메뉴항목의순서를반대로반영합니다。

예를들어,다음코드는세개의상황별메뉴를만듭니다。실행중앱에서상황별메뉴를열때Menu1이첫번째메뉴옵션으로@ @시됩니다。

FIG = ufigure;Cm = uicontextmenu(图);M1 = uimenu(cm,“文本”“Menu1”);M2 = uimenu(cm,“文本”“Menu2”);M3 = uimenu(cm,“文本”“Menu3”);fig.ContextMenu = cm;
包含三个菜单项的上下文菜单。

厘米。孩子们은예약된순서로메뉴항목의목록을반환합니다。

厘米。孩子们
ans = 3×1菜单数组:菜单(Menu3)菜单(Menu2)菜单(Menu1)

HandleVisibility속성이“关闭”로설정된객체는孩子们속성에나열되지않습니다。

자식을이목록에추가하려면또다른菜单객체의속성을 이快捷菜单객체로설정하십시오。

객체핸들의가시성으로,“上”“回调”“关闭”중하나로지정됩니다。

이속성은그부모의자식목록에서객체의가시성을제어합니다。객체가그부모의자식목록에표시되지않는다면객체계층구조를검색하거나핸들속성을쿼리하여객체를가져오는함수는객체를반환하지않습니다。이러한함수로는得到findobjgcagcfgconewplotclf关闭가있습니다。HandleVisibility속성은부모图의CurrentObject속성의객체핸들의가시성도제어합니다。객체는@ @시되지않아도여전히유효합니다。객체에액세스할수있으면해당속성을설정하여가져온후객체에대해작동하는함수로전달할수있습니다。

HandleVisibility값 설명
“上” 객체핸들이항상@ @시됩니다。
“回调” 명령줄에서호출한함수내에서가아니라,콜백내에서나콜백이호출한함수내에서객체핸들이표시됩니다。이옵션은명령줄에서객체에액세스하는것은차단하지만,콜백함수가이객체에액세스하는것은허용합니다。
“关闭” 객체핸들이항상@ @시되지않습니다。이옵션은다른함수에의해ui가의도치않게변경되는것을방지하는데유용합니다。HandleVisibility“关闭”로설정하여해당함수를실행하는동핸들을일시적으로숨길수있습니다。

식별자

모두 확장

이속성은읽기전용입니다。

그래픽스객체의유형으로,“uicontextmenu”로반환됩니다。

객체식별자로,문자형벡터또는字符串형스칼라로지정됩니다。객체의식별자로사용할고유标签값을지정할수있습니다。코드의다른곳에서객체에액세스해야할경우findobj함수를사용하여标签값을기반으로객체를검색할수있습니다。

사용자데이터로,임의의배열로지정됩니다。用户数据를지정하면앱내에서데이터를공유하는데유용할수있습니다。자세한내용은콜백간데이터공유하기항목을참조하십시오。

버전 내역

R2006a이전에개발됨

모두 확장

R2020a부터권장되지않음

R2020a부터권장되지않음

참고 항목

||