【发布时间】:2020-10-03 05:26:30
【问题描述】:
大家早上好,
我希望将 event_generate 应用于多个条目,每个条目都来自自动生成的不同框架。
我会尽量清楚地解释问题。感谢您的理解。 (我也尽量减少了代码) 一旦添加到每个条目的数量自动生成,我在 TAB 键上设置了一个 event_generate。 只有最后一个生成的条目显示 event_generate 之后的结果。所以我放了一个中断,例如在第二个条目。结果是正确的。我推断event_generate循环有效但只显示最后一次操作。
我制作视频以查看问题 event_generate show only the last result
================================================ ===
# TreeView Recettes - Rec_list # ==================================================
# --- Insertion Table Nom HV dans TreeView
def DisplayData_Recette():
for i in Recette_DB_BackEnd.loadRecord():
Rec_list.insert('', 'end', text=i[0], values=(i[0]))
# --- Insertion Scrollbar
scrollbar_y = Scrollbar(F_TOP_Treeview, orient='vertical') # Ascenseur Vertical
scrollbar_y.place(x=1786, y=24, height=169)
Rec_list = ttk.Treeview(F_TOP_Treeview, selectmode="browse", columns=(1), show="headings", yscrollcommand=scrollbar_y.set)
Rec_list.place(x=1502, y=2, width=285, height=175)
scrollbar_y.config(command=Rec_list.yview) # Ascenseur Vertical
DisplayData_Recette()
# ==================================================
# SelectItem_Recettes
# ==================================================
def Clear_frameSelected():
# Supprime toutes HV sélectionnées dans FrameCalc - frame
global Clear_var_suite
Clear_var_suite = 1
for i in range(0, len(var_suite)):
var1 = var_suite[i]
removeLabel(var1)
var_suite[:] = [] # Vide liste var_suite
def selectionItem_Recette(a):
Clear_frameSelected()
# === [Sélection - Widget Treeview Recette] ===
global Liste
Liste = []
Nom_Rec = StringVar()
Name_HV = StringVar()
Qt_Name_HV = DoubleVar()
curItem = Rec_list.focus()
Liste = Rec_list.item(curItem)["values"]
Nom_Rec.set(Liste[0]) # Variable Nom HV - 1er élément du tableau Liste
# print("Nom_Rec --> ", Nom_Rec.get())
# === [Recensement Nom HV selon sélection effecttué dans Table] ===
for row in Recette_DB_BackEnd.searchDataTable(Nom_Rec.get()):
Name_HV.set(row[2])
Qt_Name_HV.set(row[3])
Display_HV(Name_HV, Qt_Name_HV)
test()
# ==================================================
# Evénement Treeview HElist - Auto Sélection
# ==================================================
def Display_HV(Name_HV, Qt_Name_HV):
global L_Nom_HV
z = -1
F_TOP_Treeview_ID.event_add('<<Declenche>>', '<ButtonRelease-1>')
F_TOP_Treeview_ID.after(1000, lambda: F_TOP_Treeview_ID.event_generate('<<Declenche>>'))
for item in F_TOP_Treeview_ID.get_children():
z = z +1
Ligne_HElist = []
Ligne_HElist.append(F_TOP_Treeview_ID.item(item)["values"]) # Liste HV de la recette cible
if Name_HV.get() == Ligne_HElist[0][1]:
L_Nom_HV.append(Name_HV.get())
iid = F_TOP_Treeview_ID.get_children()[z]
F_TOP_Treeview_ID.focus(iid)
F_TOP_Treeview_ID.selection_set(iid)
frame = F_TOP_Treeview_ID.get_children()[z]
F_TOP_Treeview_ID.bind('<<Declenche>>', selectItem(frame))
valeur_qt = Qt_Name_HV.get()
Input_gr.insert(0, valeur_qt) # Insertion des quantités correspondnates à chacune des HV
Input_gr.config(foreground="red")
def test():
m = List_Input_gr[0]
m.event_add('<<Declenche0>>', '<KeyRelease-Tab>')
j = 0
for kt in range(0, len(List_Input_gr)):
m = List_Input_gr[kt]
nom = L_Nom_HV[kt]
Qpourc = List_Qpourc[kt]
INSp = List_INSp[kt]
IODEp = List_IODEp[kt]
SC = List_SC[kt]
HD = List_HD[kt]
iHD = List_iHD[kt]
CD = List_CD[kt]
iCD = List_iCD[kt]
CH = List_CH[kt]
iCH = List_iCH[kt]
BM = List_BM[kt]
iBM = List_iBM[kt]
CC = List_CC[kt]
iCC = List_iCC[kt]
La = List_La[kt]
iLa = List_iLa[kt]
M = List_M[kt]
iM = List_iM[kt]
P = List_P[kt]
iP = List_iP[kt]
S = List_S[kt]
iS = List_iS[kt]
CH18 = List_CH18[kt]
iCH18 = List_iCH18[kt]
O = List_O[kt]
iO = List_iO[kt]
L = List_L[kt]
iL = List_iL[kt]
Ln = List_Ln[kt]
iLn = List_iLn[kt]
Prix_gr = List_Prix_gr[kt]
print("- ID_Entry --> ", m, " Nom Entry --> ", Entry, " Nom HV --> ", nom)
Entry.focus_force(m)
Entry.focus_set(m)
j = j + 1
m.after(0, lambda: m.event_generate('<<Declenche0>>'))
m.bind('<<Declenche0>>', lambda event, obj=m: Qgr(event, obj, nom, Qpourc, INSp, IODEp, SC, HD, iHD, CD, iCD, CH, iCH, BM, iBM, CC, iCC, La, iLa, M, iM, P, iP, S, iS, CH18, iCH18, O, iO, L, iL, Ln, iLn, Prix_gr))
print("j",j, m)
for keyNameEvent in m.event_info():
# print("keyNameEvent", keyNameEvent)
print("m.event_info('<<Declenche0>>')", m.event_info('<<Declenche0>>'))
if j > 2:
break
def Qgr(event, obj, nom, Qpourc, INSp, IODEp, SC, HD, iHD, CD, iCD, CH, iCH, BM, iBM, CC, iCC, La, iLa, M, iM, P, iP, S, iS, CH18, iCH18, O, iO, L, iL, Ln, iLn, Prix_gr):
...
提前感谢您的宝贵时间
【问题讨论】:
标签: python html css windows macos