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 :

être avertit en fin de modif de la taille de la fenêtre principale


Sujet :

Interfaces Graphiques Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Points : 4
    Points
    4
    Par défaut être avertit en fin de modif de la taille de la fenêtre principale
    Bonjour,

    Perl 5/Tk
    Est-ce qu'il existe un événement sur la fenêtre principale qui permet de savoir qu'elle a été modifiée et que le bouton souris est relâché. En gros fin de la modif de taille de la fenêtré ?

    Si non comment faire ?
    L'evt Configure ne marche pas car il est généré en continu pendant la modification de la fenêtre et si le travail que l'on veut faire quand la fenêtre est modifiée est coûteux en temps, ça ne vas pas.
    Quelqu'un à t'il une solution ?
    merci d'avance

  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,
    A mon humble avis ce que tu souhaites n'est pas réalisable facilement : les évènements de modification de la taille de la fenêtre principale étant gérée par le gestionnaire de fenêtre de l'OS (Windows, Linux...).
    Je dis facilement car en agissant sur le gestionnaire de fenêtre de l'OS (API Windows par exemple) ça devrait être possible... mais usine à gaz garantie

    Cependant dans ton application Perl tu peux gérer la taille de la fenêtre principale :

    Ceci récupère les dimensions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $fen  = MainWindow->new;
    my $width = $fen->screenwidth();
    my $height = $fen->screenheight();
    Ceci permet de les modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $width = $Wm->screenwidth*(1/5);
    $height = $Wm->screenheight*(1/5);
    $Wm->configure(-height=>$height, -width=>$width, -title=>"Ormelune");
    $Wm->geometry( $width ."x". $height );
    $Wm->MoveToplevelWindow (100,100);
    Exemple BREF :
    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
    #!/usr/bin/perl
    use warnings;
    use strict;
    use utf8;
    use Tk;
    use Tk::LabFrame;
     
    my $fen  = MainWindow->new;
    my $width = $fen->screenwidth();
    my $height = $fen->screenheight();
    $fen->destroy();
     
    # Creation du widget principal
    my $Wm = MainWindow->new(
    	-width			=> $width,
    	-height			=> $height,
      -background => 'white',
    );
     
    $width = $Wm->screenwidth*(1/5);
    $height = $Wm->screenheight*(1/5);
    $Wm->configure(-height=>$height, -width=>$width, -title=>"Ormelune");
    $Wm->geometry( $width ."x". $height );
    $Wm->MoveToplevelWindow (100,100);
    #$Wm->overrideredirect(1); Pour supprimer cadre Windows avec ses boutons 
    #$Wm->packPropagate(0);
    #$Wm->raise();
     
    # Cadre des configurations
    my $couleur_commune = '#E0F0FF';
    my $cadre_configuration_playlist = $Wm->Frame( -background => $couleur_commune, );
     
    # Cadre Gestion
    my $cadre_gestion = $Wm->LabFrame(
      -label      => 'Gestion',
      -background => $couleur_commune,
      -font      => '{Simplified Arabic} 10 {bold}',
    );
     
     
    ####################################
    # Gestion de l'affichage des widgets
    #
    $cadre_gestion->pack(qw / -side right -fill both -expand 1 /);
     
     
    MainLoop;
    Donc à partir de là, dans ta fenêtre Tk, avec un ou deux widget Scale pour gérer $width et $height
    ou un seul Scale pour $width et $height en faisant un rapport proportionnel comme ci-dessus c'est possible... mais pas terrible... Ce n'est pas un évènement Release souris...
    Image de Scales piquées dans une appli :

    [EDIT 15:44] Exemple :
    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
    #!/usr/bin/perl
    use warnings;
    use strict;
    use utf8;
    use Tk;
    use Tk::LabFrame;
     
    my $fen  = MainWindow->new;
    my $width = $fen->screenwidth();
    my $height = $fen->screenheight();
    $fen->destroy();
     
    # Creation du widget principal
    my $Wm = MainWindow->new(
    	-width			=> $width,
    	-height			=> $height,
      -background => 'white',
    );
     
    $width = $Wm->screenwidth*(1/5);
    $height = $Wm->screenheight*(1/5);
    $Wm->configure(-height=>$height, -width=>$width, -title=>"Ormelune");
    $Wm->geometry( $width ."x". $height );
    $Wm->MoveToplevelWindow (100,100);
    #$Wm->overrideredirect(1); Pour supprimer cadre Windows avec ses boutons 
    #$Wm->packPropagate(0);
    #$Wm->raise();
     
    # Cadre des configurations
    my $couleur_commune = '#E0F0FF';
    my $cadre_configuration_playlist = $Wm->Frame( -background => $couleur_commune, );
     
    # Cadre Gestion
    my $cadre_gestion = $Wm->LabFrame(
      -label      => 'Gestion',
      -background => $couleur_commune,
      -font      => '{Simplified Arabic} 10 {bold}',
    );
     
    my $Scale = $cadre_gestion->Scale(
    	-background => $couleur_commune,
    	-orient => 'h',	 	-digit=>1,
    	-length => 100,
    	-from => 1,		-to => 1000,
    	-variable => \$width,
    );
     
     
    ####################################
    # Gestion de l'affichage des widgets
    #
    $cadre_gestion->pack(qw / -side right -fill both -expand 1 /);
    $Scale->grid(  
    	qw / -padx 2 -pady 5 -sticky nsew /
    );
     
    sub ModifWidth {
    	$Wm->configure(-width=>$width);
    	$Wm->geometry( $width ."x". $height );
    }
     
     
    $Scale->bind('<ButtonRelease-1>',[\&ModifWidth]);
    MainLoop;

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/04/2012, 00h12
  2. [script.aculo.us] [slider.js] Modification de la taille d'une fenêtre
    Par Cort0 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 26/10/2009, 15h25
  3. [Image]Photos modification de la taille automatiquement ?
    Par chakan dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 29/03/2006, 04h04
  4. [FLASH MX] Modification de la taille d'un bitmap
    Par bobgeldof7 dans le forum Flash
    Réponses: 5
    Dernier message: 21/11/2004, 15h08

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