Bonjour à tous,
J'ai créé un script dans lequel je défini des valeurs d'Entry soit lors de l'initialisation soit après avoir cocher des Checkbutton. Cela marche très bien si j'utilise directement ce script. J'aimerais le lancer via un autre script. Tout se passe bien sauf que je ne parviens plus à avoir ces entrées qui s'initialisent. Il y a-t-il une méthodologie particulière à appliquer?
J'appèle mon script externe simplement comme ça:
Génération de mes widget (dans une boucle):
Code : Sélectionner tout - Visualiser dans une fenêtre à part NaNB.main(is_bh_from_external=self.checklist_plan.bh_mode)
et j'ai essayé de modifier mes variable via nom_de_la_variable.set("xxx")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 vcmd_prefix = (self.register(self.validate_prefix), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W') self.text_entry[beamset.DicomPlanLabel]=tkinter.StringVar() self.beamset_prefix_list[beamset.DicomPlanLabel] = tkinter.Entry(beamset_frame, width=5, validate='all', textvariable=self.text_entry[beamset.DicomPlanLabel], validatecommand=vcmd_prefix,fg=tk.fg_master) self.beamset_prefix_list[beamset.DicomPlanLabel].configure(bg=bg_frame_color) self.beamset_prefix_list[beamset.DicomPlanLabel].pack(side="left")
et via nom_du_widget.insert(0,"xxx")
Code : Sélectionner tout - Visualiser dans une fenêtre à part self.text_entry[beamset.DicomPlanLabel].set("BH")
les commandes de validation (tkinter.Entry(validatecommand=xxx)) ne fonctionnent pas non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 self.beamset_prefix_list[beamset.DicomPlanLabel].delete(0, "end") self.beamset_prefix_list[beamset.DicomPlanLabel].insert(0, "BH")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def validate_prefix(self, d, i, P, s, S, v, V, W): widget = self.nametowidget(W) if len(P) > 3: messagebox.showerror(message="Le prefix doit contenir au maximum 3 caractères", title="Erreur d'encodage") widget.delete(0, "end") # je réécrit la dernière valeur sans le nouveau caractère widget.insert(0, P[:-1]) else: widget.delete(0, "end") widget.insert(0, P) widget.after_idle(lambda W, v: self.nametowidget(W).configure(validate=v), W, v)
Merci d'avance de votre aide
Partager