Problème de valeur par défaut lors de l'appelle d'un script par un autre
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:
Code:
NaNB.main(is_bh_from_external=self.checklist_plan.bh_mode)
Génération de mes widget (dans une boucle):
Code:
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 j'ai essayé de modifier mes variable via nom_de_la_variable.set("xxx")
Code:
self.text_entry[beamset.DicomPlanLabel].set("BH")
et via nom_du_widget.insert(0,"xxx")
Code:
1 2 3
|
self.beamset_prefix_list[beamset.DicomPlanLabel].delete(0, "end")
self.beamset_prefix_list[beamset.DicomPlanLabel].insert(0, "BH") |
les commandes de validation (tkinter.Entry(validatecommand=xxx)) ne fonctionnent pas non plus.
Code:
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