Dưới đây là một ví dụ nhanh để minh họa làm thế nào để có được giá trị của một thành phần nhóm radio button:
function simpleGUI
hFig = figure('Visible','off', 'Menu','none', 'Name','Calculator', 'Resize','off', 'Position',[100 100 350 200]);
movegui(hFig,'center') %# Move the GUI to the center of the screen
hBtnGrp = uibuttongroup('Position',[0 0 0.3 1], 'Units','Normalized');
uicontrol('Style','Radio', 'Parent',hBtnGrp, 'HandleVisibility','off', 'Position',[15 150 70 30], 'String','Add', 'Tag','+')
uicontrol('Style','Radio', 'Parent',hBtnGrp, 'HandleVisibility','off', 'Position',[15 120 70 30], 'String','Subtract', 'Tag','-')
uicontrol('Style','Radio', 'Parent',hBtnGrp, 'HandleVisibility','off', 'Position',[15 90 70 30], 'String','Multiply', 'Tag','*')
uicontrol('Style','Radio', 'Parent',hBtnGrp, 'HandleVisibility','off', 'Position',[15 60 70 30], 'String','Divide', 'Tag','/')
uicontrol('Style','pushbutton', 'String','Compute', 'Position',[200 50 60 25], 'Callback',{@button_callback})
hEdit1 = uicontrol('Style','edit', 'Position',[150 150 60 20], 'String','10');
hEdit2 = uicontrol('Style','edit', 'Position',[250 150 60 20], 'String','20');
hEdit3 = uicontrol('Style','edit', 'Position',[200 80 60 20], 'String','');
set(hFig, 'Visible','on') %# Make the GUI visible
%# callback function
function button_callback(src,ev)
v1 = str2double(get(hEdit1, 'String'));
v2 = str2double(get(hEdit2, 'String'));
switch get(get(hBtnGrp,'SelectedObject'),'Tag')
case '+', res = v1 + v2;
case '-', res = v1 - v2;
case '*', res = v1 * v2;
case '/', res = v1/v2;
otherwise, res = '';
end
set(hEdit3, 'String',res)
end
end
Rõ ràng bạn có thể bổ sung thêm kiểm chứng thực trên số đầu vào và vân vân ...
câu trả lời tuyệt vời nhưng tôi không quen với lập trình GUI trong MATLAB, tôi chỉ cần kéo và thả vào các công cụ, tôi thêm bảng radioButton Group và thêm tất cả rbuttons indide, nhưng tôi không biết cách làm cho tất cả chúng thuộc về cùng một nhóm. – palAlaa
@Alaa: Khi bạn tạo các nút vô tuyến bên trong GUIDE, hãy đảm bảo thả chúng bên trong bảng điều khiển – Amro
Tôi đã làm, và nó hoạt động ngay bây giờ, nhưng tôi thực hiện hành động trên các nút radio không phải trên nút nhấn như @gary comtois cho tôi thấy, Tôi cố gắng gọi phương thức hành động của các nút radio bên trong chức năng gọi lại của nút ấn, nhưng nó không hoạt động, bạn có gợi ý gì không? – palAlaa