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 Perl Discussion :

Pb CallBack avec ColoredButton


Sujet :

Interfaces Graphiques Perl

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 3
    Points : 7
    Points
    7
    Par défaut Pb CallBack avec ColoredButton
    Bonjour,

    Je n'arrive pas à utiliser bind avec les boutons créés avec le module ColoredButton.

    J'ai besoin de distinguer deux click différents sur le bouton, ça fonctionne bien avec un bouton standard mais pas avec ColoredButton, quelqu'un aurait-il une solution ?
    merci d'avance
    Voir programme ci-dessous pour exemple :

    #!/usr/bin/perl -w
    ####-----------------------------------
    ### File : .pl
    ### Author : DM
    ### Purpose :
    ### Version : 1.0 2017-12-10
    ####-----------------------------------
    use strict;
    use Tk;
    use Tk::LabFrame;
    use Tk::ColoredButton;

    sub callbackBouton1 {
    print $_[1],"\n";

    }
    sub callbackBouton2 {
    print "Colored Button 2 appel par Command\n";

    }
    sub callbackBouton3 {
    print $_[1],"\n";

    }
    my $window = MainWindow->new(-background => '#000000');
    my $frameGene = $window -> Frame(
    -height => 365,
    -width => 365,
    -background => '#000000'
    )-> pack(
    -side => 'left',
    -fill =>'x'
    );

    my $BoutonMenu1 = $frameGene-> Button(
    -text => "Bouton classique",
    ) -> place (
    -bordermode => 'outside',
    -x => 10 ,
    -y => 20 ,
    -width => 130,
    -height => 20
    );
    $BoutonMenu1->bind('<ButtonRelease-1>',[\&callbackBouton1,"bouton 1 simple click"]);
    $BoutonMenu1->bind('<ButtonRelease-3>',[\&callbackBouton1,"bouton 1 click droit"]);

    my $BoutonMenu2 = $frameGene-> ColoredButton(
    -text => "Colored button 1",
    -gradient => { -start_color => '#99CCCC', -end_color => '#999933', -type => 'corner_left' },
    -activegradient => { -start_color => 'white', -end_color => 'black', -type => 'corner_right' },
    -command => sub {callbackBouton2},

    ) -> place (
    -bordermode => 'outside',
    -x => 10 ,
    -y => 50 ,
    -width => 130,
    -height => 20
    );
    my $BoutonMenu3 = $frameGene-> ColoredButton(
    -text => 'Colored button 3',
    -gradient => {
    -start_color => '#FFFFFF',
    -end_color => '#E9C7CB',
    -type => 'corner_right',
    -start => 10 },
    -activegradient => {
    -start_color => '#E99CBB',
    -end_color => '#0123C8',
    -type => 'mirror_vertical',
    -start => 10 },
    )-> place (
    -bordermode => 'inside',
    -x => 10,
    -y => 80,
    -width => 130,
    -height => 20 );

    $BoutonMenu3->bind('<ButtonRelease-1>',[\&callbackBouton3,"bouton 3 simple click"]);
    $BoutonMenu3->bind('<ButtonRelease-3>',[\&callbackBouton3,"bouton 3 click droit"]);

    MainLoop;

  2. #2
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bonjour,

    Après qq essais j'en arrive au même point que toi
    J'ai essayé en passant par l'ajout d'un evt, même pb :
    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
    my $BoutonMenu3 = $frameGene-> ColoredButton(
    	-text => 'Colored button 3',
    	-gradient => {
    		-start_color => '#FFFFFF',
    		-end_color => '#E9C7CB',
    		-type => 'corner_right',
    	-start => 10 },
    	-activegradient => {
    		-start_color => '#E99CBB',
    		-end_color => '#0123C8',
    		-type => 'mirror_vertical',
    	-start => 10 },
    )-> place (
    	-bordermode => 'inside',
    	-x => 10,
    	-y => 80,
    	-width => 130,
    	-height => 20
    );
     
    #$BoutonMenu3->bind('<ButtonRelease-1>',[\&callbackBouton3,"bouton 3 simple click"]);
    #$BoutonMenu3->bind('<ButtonRelease-3>',[\&callbackBouton3,"bouton 3 click droit"]);
     
    $BoutonMenu3->eventAdd( '<<virtual_clic1>>' => '<ButtonRelease-1>' ) ;
    $BoutonMenu3->eventAdd( '<<virtual_clic3>>' => '<ButtonRelease-3>' ) ;
    $BoutonMenu3->bind('<virtual_clic1>',[\&callbackBouton3,"bouton 3 simple click"]);
    $BoutonMenu3->bind('<virtual_clic3>',[\&callbackBouton3,"bouton 3 click droit"]);
     
    MainLoop;
    il n'aime vraiment pas ColoredButton...
    Je n'ai pas d'autre idée pour l'instant.

    La prochaine fois met ton code entre balise [code] # sinon ce n'est pas lisible.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 3
    Points : 7
    Points
    7
    Par défaut merci
    Bonjour et merci à toi d'avoir essayé, je ne vois pas comment contourner le pb

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 3
    Points : 7
    Points
    7
    Par défaut solution !!!!
    Re
    En fait c'est simple, ColoredButton est dérivé de Canvas et comme précisé pour canvas il faut utiliser Tk::bind et non bind simple et là ça fonctionne bien !
    je met la discussion en résolue

    Bonne journée

  5. #5
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bien vu !
    Même avec le nez dessus je n'avais pas tilté :
    DESCRIPTION
    Tk::ColoredButton is an extension of the Tk::Canvas::GradientColor widget. It is an easy way to simulate a button widget with gradient background color.
    Merci pour le retour !

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

Discussions similaires

  1. fonction callback avec arguments
    Par YuGiOhJCJ dans le forum GTK+ avec C & C++
    Réponses: 12
    Dernier message: 12/04/2013, 08h42
  2. callback avec CALLBACK_WINDOW, waveOutOpen
    Par colin.sauvanet dans le forum Windows
    Réponses: 5
    Dernier message: 12/01/2009, 16h37
  3. Exécution simultanée de deux callback avec pause
    Par laurent.bras dans le forum MATLAB
    Réponses: 11
    Dernier message: 13/10/2008, 14h28
  4. callback avec plusieurs arguments
    Par Claiw dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 23/12/2006, 18h46
  5. Fonction callback avec arguments ?
    Par sorry60 dans le forum GTK+ avec C & C++
    Réponses: 39
    Dernier message: 07/11/2005, 10h41

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