2012-06-18 65 views
6

Tôi muốn tạo một giao diện dạng thẻ trong đó tab đầu tiên dành cho đầu vào đọc, sau đó đầu vào được hiển thị trên GUI. Người dùng có thể chọn dữ liệu từ GUI và sau đó được cung cấp làm đầu vào cho một thuật toán. Ngoài ra, người dùng có thể chọn tham số cho algortihm trong tab khác. Trong tab thứ ba, người dùng có thể thấy các ô kết quả.Làm cách nào để tạo GUI trong tab trong MatLab?

Làm cách nào để tạo GUI có thẻ trong MatLab hoặc lập trình hoặc sử dụng GUIDE?

+2

http://stackoverflow.com/questions/9859739/create-tabs-in-a-matlab-gui –

Trả lời

10

Đây là một ví dụ đơn giản bằng cách sử dụng bán tài liệu chức năng UITAB để tạo tab:

function tabbedGUI() 
    %# create tabbed GUI 
    hFig = figure('Menubar','none'); 
    s = warning('off', 'MATLAB:uitabgroup:OldVersion'); 
    hTabGroup = uitabgroup('Parent',hFig); 
    warning(s); 
    hTabs(1) = uitab('Parent',hTabGroup, 'Title','Data'); 
    hTabs(2) = uitab('Parent',hTabGroup, 'Title','Params'); 
    hTabs(3) = uitab('Parent',hTabGroup, 'Title','Plot'); 
    set(hTabGroup, 'SelectedTab',hTabs(1)); 

    %# populate tabs with UI components 
    uicontrol('Style','pushbutton', 'String','Load data...', ... 
     'Parent',hTabs(1), 'Callback',@loadButtonCallback); 
    uicontrol('Style','popupmenu', 'String','r|g|b', ... 
     'Parent',hTabs(2), 'Callback',@popupCallback); 
    hAx = axes('Parent',hTabs(3)); 
    hLine = plot(NaN, NaN, 'Parent',hAx, 'Color','r'); 

    %# button callback 
    function loadButtonCallback(src,evt) 
     %# load data 
     [fName,pName] = uigetfile('*.mat', 'Load data'); 
     if pName == 0, return; end 
     data = load(fullfile(pName,fName), '-mat', 'X'); 

     %# plot 
     set(hLine, 'XData',data.X(:,1), 'YData',data.X(:,2)); 

     %# swithc to plot tab 
     set(hTabGroup, 'SelectedTab',hTabs(3)); 
     drawnow 
    end 

    %# drop-down menu callback 
    function popupCallback(src,evt) 
     %# update plot color 
     val = get(src,'Value'); 
     clr = {'r' 'g' 'b'}; 
     set(hLine, 'Color',clr{val}) 

     %# swithc to plot tab 
     set(hTabGroup, 'SelectedTab',hTabs(3)); 
     drawnow 
    end 
end 

tab1 tab2 tab3

+0

Xin chào Amro, Cảm ơn bạn rất nhiều nó đã giúp tôi rất nhiều. –

+0

Điều này thật xuất sắc. Cảm ơn bạn rất nhiều vì đã cung cấp ví dụ này! –

0

Bạn cũng có thể tạo các tab từ một hướng dẫn tạo GUI với sự giúp đỡ của một tiện ích có sẵn từ Matlab File Exchange mà tôi đã viết.

Việc sử dụng khá đơn giản:

  1. Tạo một cửa sổ với thẻ thiết lập để Tab? Ở đâu ? là bất kỳ chữ cái hoặc số nào (ví dụ: TabA). Ngăn chính này phải để trống và xác định kích thước và vị trí của nhóm tab (uitabgroup).
  2. Tạo các ô bổ sung có tên thẻ bắt đầu bằng tên của ngăn chính. Tất cả các điều khiển khác sẽ được thêm vào các ô này.
  3. Trong hàm Hướng dẫn được tạo xxx_OpeningFcn, hãy thêm như sau:

    handle.tabManager = TabManager (hObject);

Vị trí của các ngăn bổ sung không quan trọng nhưng thường dễ dàng chỉnh sửa GUI nếu chúng ở cùng vị trí với ngăn chính. Bạn có thể chỉnh sửa các ô ngay cả khi chúng được phủ lên bằng cách đi xe đạp qua các ô có lệnh "Gửi lại" từ trình đơn Hướng dẫn bật lên.

Tab Group Place holderMain Tab Supplementary TabResulting GUI

Các vấn đề liên quan