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

Interfaçage autre langage Python Discussion :

selection automatique bouton radio


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2022
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2022
    Messages : 13
    Par défaut selection automatique bouton radio
    Bonjour,

    J'ai besoin de créer un certain nombre de bouton radio et d'en sélectionner un automatiquement.
    Pour cela j'utilise Le problème c'est que malgré cette commande rien ne se passait. J'ai fini par ajouter mainloop() et ça fonctionnait.
    Le hic c'est que ces boutons sont créés avec une boucle de init() et lorsque la boucle recommence il y a une erreur comme quoi la fenêtre est détruite et j'imagine que c'est à cause de mainloop().

    voici le code
    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
     
    for i in range(repet):
            objet = CreaMots(i, result[0][i][1], result[0][i][0], result[1][i][1], result[1][i][0])
     
    class CreaMots():
        def __init__(self, index, mot1, type1, mot2, type2, repet = 0):
            """création d'un objet représentant un mot
     
            Args:
                index (int): place du mot dans la liste
                repet (int): nombre de fois où la personne a travaillé ce mot
                mot1 (string): le mot numéro 1 sans déterminant
                type1 (string): chaine de caractères représentant le type du mot
                mot2 (string): le mot numéro 2 sans déterminant
                type2 (string): chaine de caractères représentant le type du mot
            """
            self.index=index
            self.repet= repet
     
            self.mot1=mot1
            self.type1=type1
     
            self.mot2=mot2
            self.type2=type2
     
            CreaMots.liste_mots.append(self)
     
            self.crea_ligne_objet()
     
     
        def crea_ligne_objet(self):
            """permet de créer l'interface pour faire soi même des listes de vocabulaire en entrant un mot et possiblement son genre (NM, NF, NN, Autre)
            """
            ligne_widget = []
            langues = CreaMots.liste_mots[0]
            objet = [self.index, self.mot1, self.type1, self.mot2, self.type2]
            CreaMots.modif_listes.append(self)
            for i in enumerate(CreaMots.Bts_pop_langue):
                i[1].grid(row = 0, column = (i[0]+1)**2)
     
            Lb_num = Label(CreaMots.Fr_analyse, bg = 'white', fg = 'black', text = str(self.index) , font = ('Impact', 15))
            Lb_num.grid(row = self.index+1, column = 0, padx = 10)
            ligne_widget.append(Lb_num)
     
            vars = [StringVar(), StringVar()]
            for j in range(2):
                lieu = j*3 # défini une valeur permettant de bien placer les widgets lors de la 1ere et 2eme itération
     
                #entry avec un mot 
                Ent_langue = Text(CreaMots.Fr_analyse, width = 30, height = 2)
                Ent_langue.insert(END, objet[j*2+1])
                Ent_langue.grid(row = self.index+1, pady = 5, column = lieu+1, padx = 15)
     
                #boutons ermettant de selectionner le genre du mot
                genre_langue = {'français' : ('NM', 'NF'), 'allemand' : ('NM', 'NF', 'NN')}
                langue = langues[j]
                choix_nature_mot = []
                if langue in genre_langue:
                    Fr_nature_mot = Frame(CreaMots.Fr_analyse, bg='brown')
                    Fr_nature_mot.grid(row = self.index+1, pady = 10, column = lieu + 2, padx = 10)
                    for k in range(len(genre_langue[langue])):
                        nature_mot = Radiobutton(Fr_nature_mot, indicatoron = 0, text =genre_langue[langue][k], variable = vars[j], value = k)    
                        nature_mot.grid(row = 0, column = k)
                        choix_nature_mot.append(nature_mot)
     
                    nature_mot = Radiobutton(Fr_nature_mot, indicatoron = 0, text = 'Autre', variable = vars[j], value = len(genre_langue)+1)
                    nature_mot.grid(row = 1, column = 0, columnspan=len(genre_langue[langue]))
                    choix_nature_mot.append(nature_mot)
     
                    # selectionne par defaut un bouton radion
                    for l in choix_nature_mot:
                        if objet[(j+1)*2] == l['text']:
                            l.select()
     
                #sépart deux colones de langue
                fleche_separ = Label(CreaMots.Fr_analyse, image=Wid.double_fleche, bd=0) #séparation entre les mots des 2 langues par une double fleche
                fleche_separ.grid(row = self.index+1, pady = 10, column = 3)
     
     
                #creation liste repertoriant une ligne de widget
                ligne_widget.append(Ent_langue)
                ligne_widget.append(choix_nature_mot)
     
            #label equilibrant pour mettre au milieu
            Lb_espace = Label(CreaMots.Fr_analyse, bg = 'brown', width=5)
            Lb_espace.grid(row = self.index+1, column = 6)
            ligne_widget.append(Lb_espace)
    Le code est énorme donc je n'ai pas tout mis.
    Y a-t-il un autre moyen d'actualiser la page ou de sélectionner un bouton ?

    Merci d'avance pour votre aide

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 679
    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 679
    Par défaut
    Salut,

    Toute application est la composition de fonctionnalités que l'on peut (doit pouvoir) mettre en œuvre indépendamment les unes des autres.
    En cas de problème, ça permet de l'illustrer avec un code qu'on pourra exécuter pour comprendre ce qu'il se passe... (et vous aider).
    A défaut, on peut juste vous illustrer ce qu'on peut faire avec des Radiobutton (mais il y a des documentations et des exemples déjà là sur Internet).

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

Discussions similaires

  1. transformer 'Select' en boutons radios
    Par Gesatzs dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/09/2010, 21h03
  2. Selection Automatique d'un bouton Radio
    Par iavderf dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/05/2010, 16h37
  3. selection de boutons radios par défaut
    Par boss_gama dans le forum ASP
    Réponses: 5
    Dernier message: 12/07/2006, 08h45
  4. chgmt automatique de bouton radio en fonction d'autres champs
    Par winnie82 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/06/2006, 14h49
  5. Réponses: 12
    Dernier message: 27/03/2006, 14h59

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