2009-07-12 29 views
8

Necesito crear una GUI en MATLAB para mi proyecto. Busqué ejemplos de cómo programar una GUI en todas partes, pero no pude encontrar mucho. ¿Cuáles son algunos buenos sitios o técnicas para la programación de GUI en MATLAB?¿Cómo puedo programar una GUI en MATLAB?

Respuesta

2

Recientemente tuve que programar una interfaz gráfica de usuario simple que controla algunas parcelas. No sé exactamente cuál es su tarea, pero aquí hay un código básico para comenzar. Esto crea dos figuras; La figura 1 tiene controles, la figura 2 tiene una gráfica de y = x^p. Ingrese el valor de p en el cuadro y presione intro para registrarlo y repuntar; luego presione el botón para restablecer el valor predeterminado 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 

La idea básica detrás de interfaces gráficas de usuario es que al manipular los controles que llaman funciones de "devolución de llamada", es decir, los controladores de eventos; Estas funciones pueden interactuar a través de controles utilizando los controles y los métodos set/get para obtener o cambiar sus propiedades.

Para acceder a la lista de propiedades disponibles, consulte el informativo Navegador de propiedades de gráficos de Handle en el sitio web de documentación de Matlab (http://www.mathworks.com/access/helpdesk/help/techdoc/infotool/hgprop/doc_frame.html); haga clic en Objetos UI (o cualquier otra cosa que necesite).

Espero que esto ayude!

Cuestiones relacionadas