Creare una Semplice Interfaccia Grafica (GUI) in MATLAB: Guida Passo-Passo

onion ads platform Ads: Start using Onion Mail
Free encrypted & anonymous email service, protect your privacy.
https://onionmail.org
by Traffic Juicy

Creare una Semplice Interfaccia Grafica (GUI) in MATLAB: Guida Passo-Passo

MATLAB, noto per la sua potenza nel calcolo numerico e nella visualizzazione dati, offre anche strumenti sorprendenti per la creazione di interfacce grafiche utente (GUI). Anche se non è il suo focus primario, una GUI ben progettata può rendere i tuoi script e le tue funzioni molto più accessibili e facili da usare per te e per gli altri. In questo articolo, ti guiderò attraverso i passaggi essenziali per creare una semplice GUI in MATLAB, usando l’ambiente di sviluppo integrato (IDE) GUIDE e le tecniche più elementari.

Perché Creare una GUI in MATLAB?

Prima di addentrarci nel codice, è utile capire perché potresti voler usare una GUI invece di semplici script a riga di comando:

  • Facilità d’uso: Una GUI rende l’interazione con il tuo codice più intuitiva. Gli utenti possono inserire dati tramite campi di testo, pulsanti e cursori, senza bisogno di conoscere il linguaggio MATLAB.
  • Visualizzazione immediata dei risultati: I risultati di calcoli complessi possono essere visualizzati in modo chiaro e conciso attraverso grafici e tabelle aggiornati in tempo reale.
  • Condivisione semplificata: Una GUI ben confezionata è molto più semplice da condividere e da usare rispetto a una serie di script e funzioni.
  • Presentazione di progetti: Una GUI può aggiungere un tocco professionale alla presentazione di progetti accademici o di ricerca.
  • Test e debugging semplificato: A volte, una GUI ben costruita può rendere più semplice testare e debuggare il proprio codice.

Introduzione a GUIDE: L’Ambiente di Sviluppo GUI di MATLAB

GUIDE (Graphical User Interface Development Environment) è lo strumento integrato in MATLAB per la creazione di GUI. È un ambiente di sviluppo visuale “drag-and-drop” che semplifica notevolmente la progettazione dell’interfaccia. Ecco come iniziare:

  1. Avviare GUIDE: Apri MATLAB e digita `guide` nella finestra dei comandi. Premi invio.
  2. Creare una nuova GUI: Apparirà una finestra di dialogo. Seleziona “Blank GUI (default)” e clicca su “OK”.
  3. La finestra di GUIDE: Si aprirà l’ambiente GUIDE. Vedrai una finestra vuota (la tua GUI) e una serie di strumenti sulla sinistra (palette) e una finestra delle proprietà sulla destra (Inspector).

Elementi Base di una GUI in MATLAB

Prima di iniziare a creare la nostra semplice interfaccia, vediamo quali sono gli elementi base che compongono la GUI e che useremo più spesso:

  • Pulsanti (Push Buttons): Consentono di eseguire azioni quando cliccati.
  • Campi di Testo (Edit Text): Permettono all’utente di inserire testo o numeri.
  • Testo Statico (Static Text): Usato per visualizzare etichette o descrizioni.
  • Menu a tendina (Pop-up Menus): Permettono all’utente di scegliere da un elenco predefinito di opzioni.
  • Checkbox (Checkbox): Permettono all’utente di selezionare o deselezionare opzioni.
  • Slider (Sliders): Consentono di selezionare un valore entro un intervallo.
  • Assi (Axes): Utilizzati per visualizzare grafici e immagini.
  • Tabelle (Tables): Permettono di visualizzare dati tabellari.

Costruiamo la Nostra Prima Semplice GUI

Creeremo una GUI che permetta all’utente di inserire due numeri, calcolarne la somma e visualizzare il risultato. Ecco i passi dettagliati:

  1. Aggiungere un campo di testo per il primo numero:
    • Trascina un elemento “Edit Text” dalla palette sulla finestra della GUI.
    • Seleziona l’elemento appena aggiunto e, nella finestra delle proprietà (Inspector), cambia la proprietà `String` in una stringa vuota (lasciala vuota). Questo sarà il campo per inserire il primo numero.
    • Cambia la proprietà `Tag` in `edit_numero1` (o qualsiasi altro identificatore a tua scelta). Il `Tag` è un nome unico che ci serve per riferirci a questo elemento nel codice MATLAB.
  2. Aggiungere un campo di testo per il secondo numero:
    • Trascina un altro elemento “Edit Text” sulla GUI.
    • Modifica la proprietà `String` lasciandola vuota e la proprietà `Tag` in `edit_numero2`.
  3. Aggiungere un pulsante per il calcolo:
    • Trascina un elemento “Push Button” sulla GUI.
    • Cambia la proprietà `String` in “Calcola Somma”.
    • Cambia la proprietà `Tag` in `button_calcola`.
  4. Aggiungere un campo di testo per visualizzare il risultato:
    • Trascina un elemento “Edit Text” sulla GUI.
    • Cambia la proprietà `String` in “Risultato” (o lasciala vuota, come preferisci).
    • Cambia la proprietà `Tag` in `edit_risultato`.
    • Imposta la proprietà `Enable` su `off` per rendere questo campo di testo non modificabile dall’utente. In questo modo, verrà usato solo per visualizzare i risultati del calcolo.
  5. Aggiungere etichette per una maggiore chiarezza:
    • Trascina un elemento “Static Text” e posizionalo vicino al primo campo di testo. Cambia la proprietà `String` in “Numero 1:”.
    • Trascina un altro elemento “Static Text” vicino al secondo campo di testo. Cambia la proprietà `String` in “Numero 2:”.
    • Trascina un ultimo elemento “Static Text” vicino al campo dei risultati. Cambia la proprietà `String` in “Somma:”.
  6. Salvare la GUI: Clicca su “File” e poi su “Salva”. Scegli un nome (per esempio `somma_gui.fig`) e salva il file. MATLAB creerà due file: un file `.fig` che contiene la struttura grafica dell’interfaccia e un file `.m` che contiene il codice di gestione.

Aggiungiamo Interattività: Il Codice MATLAB

Dopo aver salvato la GUI, MATLAB aprirà l’editor di codice con il file `.m` associato alla GUI. In questo file si trova il codice che gestisce l’interazione dell’utente con la GUI. Dobbiamo aggiungere un po’ di codice per fare in modo che il pulsante calcoli la somma dei due numeri inseriti dall’utente e visualizzi il risultato:

  1. Trovare la funzione callback del pulsante: Nel file `.m` cerca una funzione che si chiama `button_calcola_Callback`. Questa funzione viene eseguita quando l’utente clicca sul pulsante “Calcola Somma”. Se non c’è, creala come mostrato nel passo successivo.
  2. Inserire il codice per calcolare la somma: All’interno della funzione `button_calcola_Callback`, inserisci il seguente codice:
    function button_calcola_Callback(hObject, eventdata, handles)
    % hObject    handle to button_calcola (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Recupera i valori inseriti nei campi di testo.
    numero1_str = get(handles.edit_numero1, 'String');
    numero2_str = get(handles.edit_numero2, 'String');
    
    % Converte le stringhe in numeri.
    numero1 = str2double(numero1_str);
    numero2 = str2double(numero2_str);
    
    % Calcola la somma.
    risultato = numero1 + numero2;
    
    % Converte il risultato in stringa.
    risultato_str = num2str(risultato);
    
    % Visualizza il risultato nel campo di testo edit_risultato.
    set(handles.edit_risultato, 'String', risultato_str);
    
    end
    

    Spiegazione del codice:

    • `get(handles.edit_numero1, ‘String’)` recupera il testo inserito nel campo di testo identificato con `edit_numero1` . `handles` è una struttura che contiene i riferimenti a tutti gli elementi della GUI.
    • `str2double()` converte una stringa in un numero a doppia precisione.
    • `num2str()` converte un numero in una stringa.
    • `set(handles.edit_risultato, ‘String’, risultato_str)` imposta il testo del campo di testo identificato con `edit_risultato` al valore di `risultato_str`.
  3. Salva il file `.m`.

Eseguire la GUI

Per eseguire la tua GUI, premi il pulsante “Run” (l’icona verde con un triangolo) nell’editor di codice oppure digita `somma_gui` (o il nome che hai dato al file `.fig` senza estensione) nella finestra dei comandi di MATLAB.

Ora puoi inserire due numeri nei campi di testo, cliccare sul pulsante “Calcola Somma” e vedere il risultato visualizzato nel campo di testo apposito.

Suggerimenti e Approfondimenti

  • Validazione dell’input: Per una GUI più robusta, è importante validare l’input dell’utente. Ad esempio, puoi controllare se i valori inseriti sono effettivamente numeri e mostrare un messaggio di errore in caso contrario.
  • Gestione degli errori: Utilizza i blocchi `try…catch` per gestire possibili errori che possono verificarsi durante l’esecuzione del codice.
  • Interazioni più complesse: Sperimenta con altri elementi della GUI come checkbox, menu a tendina e slider per creare interfacce più complesse e interattive.
  • Grafici e visualizzazioni: Puoi utilizzare gli `axes` della GUI per visualizzare grafici e immagini basati sui dati forniti dall’utente.
  • Funzioni Callbacks avanzate: Le funzioni callback non si limitano al `button_callback` ma sono disponibili per tutte le modifiche di proprietà degli oggetti come ad esempio la pressione di un tasto, modifiche di testo ecc..
  • Documentazione MATLAB: La documentazione ufficiale di MATLAB è la tua risorsa più preziosa. Cerca le parole chiave “GUIDE”, “GUI”, e i nomi degli elementi della GUI per trovare informazioni dettagliate e esempi.
  • Oggetti Handles: La struttura `handles` è fondamentale per interagire con gli oggetti della GUI. Impara come manipolarla correttamente.
  • Struttura dati GUI: Quando le GUI diventano più complesse puoi considerare di salvare i dati in strutture e memorizzare tali strutture nella `handles` con `guidata(hObject,handles)` .

Conclusioni

La creazione di GUI in MATLAB non è così difficile come potrebbe sembrare inizialmente. Con GUIDE, puoi progettare interfacce utente visivamente accattivanti e intuitive senza scrivere righe e righe di codice. Questo articolo ti ha fornito le basi per creare la tua prima GUI semplice. Sperimenta, impara e scopri come le GUI possono migliorare significativamente l’esperienza di utilizzo dei tuoi script e delle tue funzioni MATLAB. Buon divertimento con le GUI di MATLAB!

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments