Bonjour tout le monde,
Après avoir essayer de me débloquer tout seul toute la journée, je jette l'éponge et me permet de créer cette discussion. Voici mon problème.
Désirant créer un GUI (en code manuel, apparemment le GUIDE n'est pas conseillé), mon programme est composé d'un fichier .m central, gérant le GUI et incluant des zones de texte éditables/boutons/etc...
Ces boutons font donc appel à des callback, leurs entrées étant dans les zones de texte éditables. Le cœur du problème est que j'écris les fonctions appelées par les callbacks dans d'autres fichiers .m (car elles sont nombreuses, donc meilleure clarté et organisation, dans ma tête au moins!).
Il m'est actuellement impossible d'arriver à lire mes inputs dans la fonction. Le callback arrive à lire cette fonction mais ensuite problème à l'intérieur de cette dernière. Voici le code correspondant:
Fichier principal:
Et la fonction appelée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 clear all clc close all global Total_car_weight Car_Balance %% Load the fixed parameters of the car. load Car_Data; %% Main window backcolor = [0.925 0.914 0.847]; backcolor_saisie = [1 1 1]; largeur_fen_prin = 1200; hauteur_fen_prin = 710; main_win = figure('Color',backcolor, ... 'Toolbar','none','menubar','none', ... 'Resize','on', ... 'Name', ([Set-up Optimization Tool']), ... 'PaperOrientation','Landscape','PaperType','A4', ... 'NumberTitle','Off', ... 'Position',[40 40 largeur_fen_prin hauteur_fen_prin]); %% Main panel pan_param = uipanel('Parent',main_win,'Position',[0 0 largeur_fen_prin hauteur_fen_prin],'BorderType','none'); %% Static Inputs pos_x = 50; pos_y = hauteur_fen_prin*0.85; largeur_titre = 300; largeur_saisie = 100; hauteur_saisie = 20; uicontrol('Parent',pan_param,'Units','pixels', ... 'Position',[pos_x pos_y largeur_saisie hauteur_saisie],... 'String','Total Car Weight','Style','text','Tag','text36'); pos_y = pos_y+0.2*hauteur_saisie; pos_x = pos_x + largeur_saisie; weight_box = uicontrol('Parent',pan_param,'Units','pixels', ... 'BackgroundColor',backcolor_saisie, ... 'Position',[pos_x pos_y largeur_saisie hauteur_saisie], ... 'String',Total_car_weight, ... 'Style','edit'); %% Results on screen pos_x = 100; pos_y = pos_y-5*hauteur_saisie; Results = uicontrol('Parent',pan_param,'Units','Pixels', ... 'Position',[pos_x pos_y largeur_saisie hauteur_saisie], ... 'Style','push', ... 'String','Lancer Calcul', ... 'Callback', 'Test_Weight');
Pour résumer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function [F_Suspended_Wht] = Test_Weight() Tot_Wht = Total_car_weight; Car_Bal = get(carBal,'Value'); F_Suspended_Wht=Tot_Wht*Car_Bal-F_Unsuspended_Wht; end
Je pense avoir un gros souci de compréhension de la récupération des entrées/sorties. Dès le début, je me demande comment récupérer correctement les valeurs entrées dans les Edit Text, puis ensuite les transférer dans la fonction pour les traiter, et finalement ré-afficher le résultat dans le GUI.
Le code présenté peut ne plus avoir grand sens, après avoir essayer de multiples combinaisons durant la journée, désolé.
Merci à ceux qui pourront éclairer ma lanterne.
Cordialement.
Partager