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

Tcl/Tk Discussion :

Ralentissement de mon PC quand j'appuie sur un bouton


Sujet :

Tcl/Tk

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Ralentissement de mon PC quand j'appuie sur un bouton
    Salut, j'ai appuyé sur un bouton et provoqué un ralentissement énorme de mon PC ; bien sûr il y a une procédure mais ce n'est pas la première fois que ça m'arrive !

    Voici mon code : (je n'ai pas mis le bouton, je n'ai mis que les procédures)
    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
     
    proc diff {} {
    toplevel .top
    label .top.lb1 -text "Choisissez votre difficulté :" -font bold
    label .top.lb1f -text "Facile : 0-50" -font bold
    label .top.lb1n -text "(Par default) Normale : 0-100" -font bold
    label .top.lb1d -text "Difficile : 0-500" -font bold
    pack .top.lb1 .top.lb1f .top.lb1n .top.lb1d
    foreach j {difficile normale facile} {
    	radiobutton .top.$j -text $j -command $j -value $j -font bold
    	grid .top.$j -sticky w
    }
    }
     
    proc difficile {} {
    	global nbdc
    	global alea
    	incr nbdc -$nbdc
    	.nbdc configure -text "Nombre de coups : $nbdc"
    	unset alea
    	set alea [expr int(rand() * 500) + 1]
    }
    proc normale {} {
    	global nbdc
    	global alea
    	incr nbdc -$nbdc
    	.nbdc configure -text "Nombre de coups : $nbdc"
    	unset alea
    	set alea [expr int(rand() * 100) + 1]
    }
    proc facile {} {
    	global nbdc
    	global alea
    	incr nbdc -$nbdc
    	.nbdc configure -text "Nombre de coups : $nbdc"
    	unset alea
    	set alea [expr int(rand() * 50) + 1]
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 347
    Points : 531
    Points
    531
    Par défaut
    Bonsoir,

    Dans la procédure diff il y a deux conflits avec les différents widgets:

    - D'abord 4 label sont placés avec le gestionnaire de géométrie pack.
    (jusque là pas de problème)

    - Ensuite, dans la boucle foreach, les 3 radiobutton sont placés sur la même ligne. Cela engendre un conflit dans la pile de données des widgets. Autrement dit, il faudrait changer de ligne avec grid (-row) dans la boucle foreach.

    - Finalement, le dernier problème est que les radiobutton viennent se placer sur les label. Cela engendre aussi un conflit.
    Si l'on veut utiliser les gestionnaires de géométrie pack et grid en même temps, il vaut mieux choisir par exemple deux frame pour placer les widgets.

    Voici une autre solution possible uniquement avec grid :

    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
     
    proc diff {
     toplevel .top
     
     label .top.lb1 -text "Choisissez votre difficulté :" -font bold
     label .top.lb2 -text "Facile : 0-50" -font bold
     label .top.lb3 -text "(Par default) Normale : 0-100" -font bold
     label .top.lb4 -text "Difficile : 0-500" -font bold
     set i 0
     foreach lb [winfo children .top] {grid $lb -sticky w -row [incr i]}
     foreach j {difficile normale facile} {
    	radiobutton .top.$j -text $j -command $j -value $j -font bold
            grid .top.$j -sticky w -row [incr i]
     }
    }
    ----
    Canvas

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Merci
    Merci canvas tas solution me parait un peut compliquer, elle marche, j'ai
    essayer avec frame, j'ai pas réussi mais je mi mettrai plus tard.
    Aussi en fin plus tard, j’essaierai avec place, je pense que sa va marcher !

    Sinon je te remercie infiniment de ta réponse si sympathique !

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

Discussions similaires

  1. Récupérer le texte d'un entry quand on appuie sur un bouton
    Par drhouse87 dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 27/12/2011, 15h05
  2. Temps quand on appuie sur un bouton
    Par makflai dans le forum LabVIEW
    Réponses: 0
    Dernier message: 14/07/2010, 13h27
  3. Créer un JLabel et JComboBox quand on appuie sur un bouton
    Par maxkarting25 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 16/05/2008, 19h26
  4. Réponses: 1
    Dernier message: 02/03/2008, 22h34
  5. Comment détecter quand un utilisateur appuie sur le bouton Power ?
    Par Millenod dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 22/09/2005, 22h05

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