Matalb GUI 中toggle button和raido的操作

1. 使用button group实现radio button的互斥功能:

button group和panel算是一種控件(屬於uipanel),特性跟我們常用的uicontrol不太一樣,你可以用button group或是panel把一些uicontrol包起來,這些被button group 或是panel包起來的uicontrol在某些方面比較容易操控。例如:
     (1). 可以讓使用者比較明白整個按鈕的群組與功能,整個介面看起來會比較有組織感。
     (2). button group 或是panel內的控件可以用findobj(h, 'Parent')的方式,一次全找出來,設定共通屬性,例如Visible, Enalbe等。
    (3). button group 或panel內的控件的Position是對應於button group 或是panel,而非對應於figure,對於位置安排比較有彈性。
   (4). 把控件放進button group 裡面,對他的功能沒影響。倒是對於做radio button會有點好處。因為對於「互斥」這種功能的按鈕,在button group 裡面不需要一個個設定(尤其按鈕很多的話),button group有個功能讓你很方便處理radio button或是toggle button的互斥操作。

 

2. 在gui上放了一个button group控件,然后在上面放了4个toggle button控件。在没有写回调函数之前,可以保证有且只有一个toggle button保持摁下的状态。以下是实现程序:

    step1: 利用属性查看器,把最初选中的按钮的value值设为0,这样就表示未选中
    step2: 在每个按钮的callback下,加入语句,把其它按钮的value设为0即可:

function togglebutton1_Callback(hObject, eventdata, handles)
set(handles.togglebutton2,'value',0);
set(handles.togglebutton3,'value',0);
set(handles.togglebutton4,'value',0);


function togglebutton2_Callback(hObject, eventdata, handles)
set(handles.togglebutton1,'value',0);
set(handles.togglebutton3,'value',0);
set(handles.togglebutton4,'value',0);

function togglebutton3_Callback(hObject, eventdata, handles)
set(handles.togglebutton1,'value',0);
set(handles.togglebutton2,'value',0);
set(handles.togglebutton4,'value',0);


function togglebutton4_Callback(hObject, eventdata, handles)
set(handles.togglebutton1,'value',0);
set(handles.togglebutton2,'value',0);
set(handles.togglebutton3,'value',0);

你可能感兴趣的:(Matlab,GUI,Design)