IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Discussion :

Comment lancer un programme à partir d'un bouton ?


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 54
    Points
    54
    Par défaut Comment lancer un programme à partir d'un bouton ?
    comment lancer un programme à partir d'un bouton poussoir?

    j'ai réalisé un programme et je voudrais le lancer a partir d'une interface et plus particulièrement à partir d'un bouton poussoir.

    comment faire? quelles sont les lignes d'instructions.

    merci

  2. #2
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Bonjour,

    essaie cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function main
    figure
     
    uicontrol('style','pushbutton',...
            'units','normalized',...
            'position',[.1 .1 .2 .05],...
            'string','OK',...
            'callback',@programme);
     
    function  programme(obj,event)
    .....
    .....

  3. #3
    Membre du Club Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 54
    Points
    54
    Par défaut
    en fait, je ne voulais pas écrire mon programme a la suite du programme de l'interface.
    je m'explique:

    -Je règle deux valeurs avec des sliders (on dira "a" et "b")
    - puis en appuyant sur un bouton poussoir, je lance un programme utilisant les deux valeurs (ex: toto(a,b))

    Mais je ne sais pas:
    -comment utiliser les valeurs des sliders car quand je tape

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function vitesse_callback(hObject,eventdata)
          previous_val = val;
          val = get(hObject,'Value');
          set(ethv,'String',num2str(val));
     
          toto(val)
    la valeur de val ne s'actualise pas.

    -comment lancer le programme a partir du bouton poussoir.
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Bonjour,

    quel est le problème avec la solution que j'avais donnée précédement :
    https://www.developpez.net/forums/showthread.php?t=288933

  5. #5
    Membre du Club Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 54
    Points
    54
    Par défaut ça répond qu'a moitié
    et pour l'action du bouton poussoir qui lance un programme???

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 901
    Points
    52 901
    Par défaut
    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
    57
    58
    59
    60
    61
    function slider_gui2
     
    previous_val = 0;
    val = 0;
     
    fh = figure('Position',[250 250 350 350]);
     
    sh = uicontrol(fh, ...
        'Style','slider',...
        'Max',100, ...
        'Min',0, ...
        'Value',25,...
        'SliderStep',[0.05 0.2],...
        'Position',[300 25 20 300],...
        'Callback',@slider_callback,...
        'userdata',previous_val,...
        'tag','sh');
     
    eth = uicontrol(fh, ...
        'Style','edit',...
        'String',num2str(get(sh,'Value')),...
        'Position',[30 175 240 20],...
        'Callback',@edittext_callback,...
        'tag','eth');
     
    sth = uicontrol(fh, ...
        'Style','text',...
        'String','Enter a value or click the slider.',...
        'Position',[30 215 240 20]);
     
    uicontrol(fh,...
        'Position',[30 25 240 40],...
        'string','OK',...
        'callback',@button_callback)
     
    function slider_callback(hObject,eventdata)
     
        eth=findobj('tag','eth');
        previous_val = get(hObject,'userdata');
        val = get(hObject,'Value');
        set(hObject,'userdata',val);
        set(eth,'String',num2str(val));
        sprintf('You moved the slider %.1f units.',abs(val - previous_val))
     
    function edittext_callback(hObject,eventdata)
     
    	sh=findobj('tag','sh');
    	previous_val = get(sh,'userdata');
    	val = str2double(get(hObject,'String'))
    	if isnumeric(val)
            if val>=get(sh,'min') & val<=get(sh,'max')
                set(sh,'Value',val);
                set(sh,'userdata',val);
                sprintf('You moved the slider %.1f units.',abs(val - previous_val))
            end
    	end
     
    function button_callback(hObject,eventdata)
        sh=findobj('tag','sh');
        val=get(sh,'userdata');
        warndlg(sprintf('La valeur du slider est %.2f',val),'')
    Note: WARNDLG peut être considérer comme un programme ici.

  7. #7
    Membre du Club Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 54
    Points
    54
    Par défaut aide
    quand j'appelle la fonction suivante dans un programme, cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [a,X,Y]= billard(val,vale);
    Mais quand je l'insert dans la fonction callback du bouton poussoir, matlab m'indique qu'il y a trop d'arguments d'entré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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    function[val, vale]=guide;
    fh = figure('Position',[0 25 1025 700]);
     
    %
    %number_errors = 0;
    previous_val = 0;
    val = 0;
    vale = 0;
    previous_vale = 0;
    % Slider vitesse initiale
    % min 0 , max 10, step 0.01
    shv = uicontrol(fh,'Style','slider',...
                   'Max',10,'Min',0,'Value',5,...
                   'SliderStep',[0.01 0.01],...
                   'Position',[250 25 300 20],...
                   'Callback',@vitesse_callback);   
    %
    % Slider angle de tir 
    % min 0 , max 360, step 1/360         
    sha = uicontrol(fh,'Style','slider',...
                   'Max',360,'Min',0,'Value',0,...
                   'SliderStep',[1/360 1/360],...
                   'Position',[600 25 300 20],...
                   'Callback',@angle_callback);
    %
    % edit text vitesse initiale 
    ethv = uicontrol(fh,'Style','edit',...
                   'String',num2str(get(shv,'Value')),...
                   'Position',[360 60 70 20],...
                   'Callback',@edittextvitesse_callback);
    %
    % edit text angle de tir 
    etha = uicontrol(fh,'Style','edit',...
                   'String',num2str(get(sha,'Value')),...
                   'Position',[710 60 70 20],...
                   'Callback',@edittextangle_callback);         
     
    sth1 = uicontrol(fh,'Style','text',...
                   'String','Vitesse',...
                   'Position',[360 85 70 20]);
     
    sth2 = uicontrol(fh,'Style','text',...
                        'String','Angle',...
                         'Position',[710 85 70 20]);
     
    sth3 = uicontrol(fh,'Style','text',...
                        'String','0',...
                         'Position',[238 31 10 10]);
    sth4 = uicontrol(fh,'Style','text',...
                        'String','10',...
                         'Position',[552 31 20 10]);
    sth5 = uicontrol(fh,'Style','text',...
                        'String','0',...
                         'Position',[588 31 10 10]);
    sth6 = uicontrol(fh,'Style','text',...
                        'String','360',...
                         'Position',[902 31 20 10]);
     
    ah = axes('Parent',fh,'Position',[.25 .25 .7 .7]);
     
    tir=uicontrol(fh,'Style','pushbutton',...
                   'String','Tirer',...
                   'Position',[950 30 50 30],...
                   'Callback',@tire_callback);
        function billard(val,vale)
        end
     
    previous_val = 0;
    val = 0;
    vale = 0;
    previous_vale = 0;
     
    % ----------------------------------------------------
    % 
    % Slider vitesse initiale
    %
       function vitesse_callback(hObject,eventdata)
          previous_val = val;
          val = get(hObject,'Value');
          set(ethv,'String',num2str(val));
     
       end
    %
    %
    %slider angle de tir
        function angle_callback(hObject,eventdata)
          previous_vale = vale;
          vale = get(hObject,'Value');
          set(etha,'String',num2str(vale));
        end
     
    % bouton poussoir tire
        function tire_callback (hObject,eventdata)
                [a,X,Y]= billard(val,vale);
     
            %traçage de la trajectoire 
            for i=2:a
                fh=plot([x(i-1,1),x(i,1)],[y(i-1,1),y(i,1)],':.b');
                hold on
            end
        end
     
     
    end
    quelqu'un aurait-il une solution a mon problème????

    merci

  8. #8
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Bonjour,

    Oui, je pense que c'est normal, car t'as définié la fonction billard sans arguments de sortie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ....
    ....
        function billard(val,vale)
        end
    ...
    ....
        function tire_callback (hObject,eventdata)
                [a,X,Y]= billard(val,vale);

  9. #9
    Membre du Club Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 54
    Points
    54
    Par défaut Merci
    Merci c'était bien ça qui ne fonctionnait pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/03/2012, 11h10
  2. Comment lancer un programme à partir du compte système SYSTEM ?
    Par masterx_goldman dans le forum Windows
    Réponses: 10
    Dernier message: 03/09/2009, 13h16
  3. Comment lancer VLC a partir un programme java ?
    Par khaledzz9 dans le forum Général Java
    Réponses: 2
    Dernier message: 18/01/2009, 16h26
  4. [VBA-E] comment lancer mon programme grace a un bouton ?
    Par Anorgasmophobie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 21h24
  5. Réponses: 8
    Dernier message: 05/06/2002, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo