2009-07-12 28 views

Trả lời

2

Gần đây tôi đã có một chương trình GUI đơn giản điều khiển một số lô. Tôi không biết chính xác nhiệm vụ của bạn là gì, nhưng đây là một số mã cơ bản để bạn bắt đầu. Điều này tạo ra hai con số; Hình 1 có các điều khiển, Hình 2 có một âm mưu y = x^p. Bạn nhập giá trị của p vào hộp và nhấn enter để đăng ký nó và thay thế; sau đó nhấn nút để đặt lại về mặc định p = 1.

function SampleGUI() 
    x=linspace(-2,2,100); 
    power=1; 
    y=x.^power; 
    ctrl_fh = figure; % controls figure handle 
    plot_fh = figure; % plot figure handle 
    plot(x,y); 
    % uicontrol handles: 
    hPwr = uicontrol('Style','edit','Parent',... 
         ctrl_fh,... 
         'Position',[45 100 100 20],... 
         'String',num2str(power),... 
         'CallBack',@pwrHandler); 

    hButton = uicontrol('Style','pushbutton','Parent',ctrl_fh,... 
         'Position',[45 150 100 20],... 
         'String','Reset','Callback',@reset); 

    function reset(source,event,handles,varargin) % boilerplate argument string 
     fprintf('resetting...\n'); 
     power=1; 
     set(hPwr,'String',num2str(power)); 
     y=x.^power; 
     compute_and_draw_plot(); 
    end 

    function pwrHandler(source,event,handles,varargin) 
     power=str2num(get(hPwr,'string')); 
     fprintf('Setting power to %s\n',get(hPwr,'string')); 
     compute_and_draw_plot(); 
    end 

    function compute_and_draw_plot() 
     y=x.^power; 
     figure(plot_fh); plot(x,y); 
    end 
end 

Ý tưởng cơ bản đằng sau GUI là khi bạn điều khiển các điều khiển mà họ gọi là chức năng "Gọi lại", tức là xử lý sự kiện; các hàm này có thể tương tác thông qua các điều khiển bằng cách sử dụng các chốt điều khiển và các phương thức set/get để lấy hoặc thay đổi các thuộc tính của chúng.

Để đến danh sách các thuộc tính có sẵn, hãy xem xét trình duyệt thuộc tính đồ họa xử lý đồ họa rất thông tin trên trang web tài liệu của Matlab (http://www.mathworks.com/access/helpdesk/help/techdoc/infotool/hgprop/doc_frame.html); bấm vào đối tượng UI (hoặc bất cứ điều gì khác mà bạn cần).

Hy vọng điều này sẽ hữu ích!

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