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

Python Discussion :

Petite question pour un grand pas [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Petite question pour un grand pas
    Bonjour à tous

    Je me pose une question essentielle portant sur l'utilisation du curseur.
    Je sais, que les propriétés permettent le mouvement du curseur automatisé.

    Mon problème est que j'aimerais bien gérer le ou les curseurs ailleurs que dans la classe principale "Gammique(Tk):"
    La classe principale "Gammique(Tk):" : C'est le tableau de bord

    Je voudrais aussi avoir la possibilité de ne pas inclure "command=fonction", au curseur à cause de l'automatisme.

    En créant une classe héritière "ProGamme(Gammique):"
    La classe héritière "ProGamme(Gammique):" La partie du programme qui gère les utilisations

    Comment détecter l'utilisation du curseur, changer le curseur de place.




    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
    # 
    # Application gammique évolutive
    # Version 1 : Calculer les gammes
    #
    from tkinter import *
     
    # Dessine une note
    def cercle(can,x,y,r):
        can.create_oval(x-r,y-r,x+r,y+r)
     
    class Gammique(Tk):
        """ Ramification Gammique """
        def __init__(self):
            Tk.__init__(self)
            "Tableau de bord"
            self.title('Entité Gammique :')
            # Fenêtre écran_résultat (
            self.can=Canvas(self,bg='ivory', height=500,width=750)
            self.can.pack(side=RIGHT)
            # Bouton gamme_audio
            Button(self,text ='Radio').pack()
            # Les notes cursives scalpha : Graduations gérées.
            self.sca1=Scale(self,length =250,orient = HORIZONTAL,label ='C',
                  troughcolor ='black',sliderlength =20,showvalue =0,
                  from_ =0,to =5,tickinterval =1).pack()
            self.sca2=Scale(self,length =250,orient = HORIZONTAL,label ='D',
                  troughcolor ='green',sliderlength =20,showvalue =0,
                  from_ =-1,to =4,tickinterval =1).pack()
            self.sca3=Scale(self,length =250,orient = HORIZONTAL,label ='E',
                  troughcolor ='blue',sliderlength =20,showvalue =0,
                  from_ =-2,to =3,tickinterval =1).pack()
            self.sca4=Scale(self,length =250,orient = HORIZONTAL,label ='F',
                  troughcolor ='grey',sliderlength =20,showvalue =0,
                  from_ =-2,to =3,tickinterval =1).pack()
            self.sca5=Scale(self,length =250,orient = HORIZONTAL,label ='G',
                  troughcolor ='red',sliderlength =20,showvalue =0,
                  from_ =-3,to =2,tickinterval =1).pack()
            self.sca6=Scale(self,length =250,orient = HORIZONTAL,label ='A',
                  troughcolor ='orange',sliderlength =20,showvalue =0,
                  from_ =-4,to =1,tickinterval =1).pack()
            self.sca7=Scale(self,length =250,orient = HORIZONTAL,label ='B',
                  troughcolor ='yellow',sliderlength =20,showvalue =0,
                  from_ =-5,to =0,tickinterval =1).pack()
            # Concerne les notes scahuit : Graduations gérées.
            self.sca8=Scale(self,length =250,orient = HORIZONTAL,label ='CDEFGAB',
                  troughcolor ='white',sliderlength =20,showvalue =0,
                  from_ =-12,to =12,tickinterval =1).pack()
            # Bouton gamme_naturelle
            Button(self,text ='Zéro').pack()
            # Texte significatif
            self.lab=Label(self,text="Barre des tâches ").pack(side=RIGHT)
            # Tableau réunissant les tables diatoniques
            self.gammes =['1101110','0201110','2001110','4000010','1011110','0111110','1030010',
              '1210010','2200010','0012110','1300010','0021110','1220000','0040010',
              '1400000','1002110','0102110','1130000','0003110','1100210','0200210',
              '0202010','2000210','1010210','1012010','1112000','2003000','0020210',
              '1202000','1003010','1001210','1103000','1121000','0100310','0010310',
              '0001310','0002210','1000310','0022010','0000410','0023000','1004000',
              '0005000','1101020','1101200','0201020','0201200','2001020','2001200',
              '1011020','1011200','1100120','1100300','1102100','1120100','0200030',
              '1002200','1001030','1300100','1000130','0003020','0021200','1000040',
              '0003200','1100030','3000020']
     
     
    prgm = Gammique()
    prgm.mainloop()

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    La classe Gammique est l'interface, une classe Core (ou Main, ou CommeTuVeux) n'a aucun besoin d'en hériter. Tu t'emmêleras les pinceaux d'ailleurs.

    Tu lui fais simplement créer l'interface:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Core(objet):
        def __init__(self):
            self.ui = Gammique()
            # tu peux maintenant contrôler les widgets
            self.ui.sca1.........

  3. #3
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par toumus Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            self.sca1=Scale(self,length =250,orient = HORIZONTAL,label ='C',
                  troughcolor ='black',sliderlength =20,showvalue =0,
                  from_ =0,to =5,tickinterval =1).pack()
    Bonjour,
    Désolé de ne rien comprendre à tout cela…
    Cependant, ainsi que dans la majorité des affectations de ce script, il y a manifestement une erreur dans cette ligne…

    Clodion

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci
    Voici un exemple d'utilisation : L'utilisateur avance de deux crans le curseur sca1, et de ce fait le curseur sca2 doit alors avancer lui aussi d'un cran. Comment le programme peut savoir lequel des curseurs à été utilisé ? Mon idée était de placer à la fin de chaque curseur command=fonction. Ainsi à chaque fois qu'il y a un mouvement menant à une unique fonction, comment savoir lequel des curseurs à été bougé.

    Autrement, il est vrai que pour gérer les curseurs. Je dois remplacer quelques valeurs par des variables locales.

    Get, set, ...?

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Ce que veux dire Clodion (qui, contrairement à moi, à lu ton code) c'est que la référence de ton curseur, par exemple sca1 est le retour de la méthode pack() soit None.

    Pour vérifier, fais simplement print sca1 après l'avoir créé.

    Il faut donc mettre sca1.pack() sur une seconde ligne.


    Oui, pour chaque curseur tu dois définir une command=quelquechose avec un callback différent pour chaque curseur.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci du coup de main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    self.sca1=Scale(self,length =250,orient = HORIZONTAL,label ='C',
                  troughcolor ='black',sliderlength =20,showvalue =0,
                  from_ =0,to =5,tickinterval =1)
            self.sca1.pack()
    Plus print ("sca1 ",self.sca1), çà ne donne pas toujours le même résultat. Sur 3 essais :_sca1 .44709360_sca1 .46347696_sca1 .44512688


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    self.sca1=Scale(self,length =250,orient = HORIZONTAL,label ='C',
                  troughcolor ='black',sliderlength =20,showvalue =0,
                  from_ =0,to =5,tickinterval =1).pack()
    Plus print ("sca1 ",self.sca1), çà donne :_sca1 None

    Est-ce que NONE est une bonne réponse ?

    Ce que je veux c'est afficher self.sca1.schowvalue "qui est égal à zéro

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par toumus Voir le message
    Plus print ("sca1 ",self.sca1), çà ne donne pas toujours le même résultat. Sur 3 essais :_sca1 .44709360_sca1 .46347696_sca1 .44512688
    print appliqué à un widget affiche le nom de la "variable" Tk qui lui a été associée.
    Par défaut, ce nom est construit avec str(id(self)).
    Il correspond à l'adresse mémoire de l'objet qui à l'avantage d'être "unique" au moins pendant toute la durée de vie de l'objet.

    Pourquoi ne pas essayer de faire ce qu'à proposé VinsS? Ca devrait aider à réaliser ce que vous voulez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Petit question pour un lien
    Par dedepsg dans le forum Langage
    Réponses: 6
    Dernier message: 28/11/2007, 10h32
  2. petite question pour gros soucis
    Par bakman dans le forum SharePoint
    Réponses: 0
    Dernier message: 19/10/2007, 15h30
  3. Quelques petites questions pour bien fignoler mon appli
    Par Juho06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/03/2007, 10h24
  4. Réponses: 16
    Dernier message: 05/08/2006, 11h07
  5. Petite question pour Backup
    Par chicken92000 dans le forum Administration
    Réponses: 2
    Dernier message: 16/09/2004, 16h10

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