2 votes

Comment récupérer un point de données dans un champ de texte depuis l'espace de travail de MATLAB vers l'interface graphique utilisateur (GUI) ?

J'ai une matrice 8x1 de cellules dans mon espace de travail Matlab appelée textdata. Elle contient des symboles dans chaque ligne. Comment puis-je utiliser le bouton poussoir et les Edit1_Callbacks pour programmer une opération de récupération de ce point de données de base (quel est le code et où dois-je le taper? Pas de trucs compliqués, je veux juste savoir comment importer le textdata dans l'interface graphique et, d'un simple clic sur un bouton, récupérer le premier symbole dans la zone de texte d'édition (un point de données de la première ligne de textdata)?

0voto

Aabaz Points 2573

Vous pouvez utiliser la fonction Matlab evalin pour récupérer une variable de l'espace de travail de votre interface graphique.

L'exemple d'interface graphique suivant montre comment faire, vous pouvez probablement développer à partir de ce point de départ :

% Interface graphique
function so_wsgui
figure('units','normalized',
    'position',[0.15 0.15 0.7 0.7],
    'color',[1 1 1]*0.5,
    'numbertitle','off',
    'menubar','none',
    'toolbar','none',
    'tag','figure');
data=guihandles(gcf);
uicontrol('parent',data.figure,
    'style','pushbutton',
    'string','Importer',
    'units','normalized',
    'position',[0.1 0.85 0.8 0.05],
    'callback',@import_callback);
uicontrol('parent',data.figure,
    'style','edit',
    'horizontalalignment','center',
    'backgroundcolor',[1 1 1],
    'units','normalized',
    'position',[0.1 0.5 0.8 0.05],
    'tag','text');
data=guihandles(gcf);
guidata(gcf,data);
end
% Retours
function import_callback(obj,event) %#ok
data=guidata(gcbf);
try
    wsvar=evalin('base','textdata');
    set(data.text,'string',wsvar{1});
catch exception
    set(data.text,'string',['Erreur : ' exception.identifier]);
end
end

Cependant, vous devez faire attention avec cela car rien ne vous garantit que la variable existe ou qu'il s'agit d'un tableau de cellules, vous devez donc être prudent. Ce n'est pas vraiment la manière habituelle de transmettre des données à une interface graphique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X