【发布时间】:2023-03-23 02:17:01
【问题描述】:
当我点击它时,我使用 Checkbuttons 来获取数据,但是我的变量没有改变,我不知道为什么。通常它在未点击时等于 0,当它被按下时等于 1。但它的反应就像它总是没有被按下一样。
def config(ticket,client,code,state,Date):
def save():
Input_comment = T_Comment.get("1.0", END)
print("--------------")
print("Commentaires :", T_Comment.get("1.0", END))
print("Remboursement :",is_Remb.get())
print("Retour colis :", is_Return.get(),"\tChoix :",var_.get())
print("Geste :", is_Geste.get(), "\tMontant :",e_geste.get())
print("Avoir :", is_Avoir.get())
print("Autres :\t", T_Autre.get("1.0", END) )
print("Details transporteur :", "\n-Transporteur :", e_track_transp.get(), "\nNumero Tracking :", e_track.get())
#UPDATE commentaires SAV
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Commentaires_SAV= (?) WHERE ID =1", (T_Comment.get("1.0", END),))
connexion.commit()
curseur.close()
#UPDATE Solutions SAV
if is_Remb.get() == 1:
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Solutions_SAV= 'Remboursement\' WHERE ID =1")
connexion.commit()
curseur.close()
if is_Return.get() == 1:
if var_.get() == 1:
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Solutions_SAV= 'Retour Colis - Client\n' WHERE ID =1")
connexion.commit()
curseur.close()
elif var_.get() == 2:
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Solutions_SAV= 'Retour Colis - SAV\n' WHERE ID =1")
connexion.commit()
curseur.close()
if is_Geste.get() == 1:
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Solutions_SAV= 'Geste commercial\n' WHERE ID =1", )
connexion.commit()
curseur.close()
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Geste_commercial= (?) WHERE ID =1", (e_geste.get(),) )
connexion.commit()
curseur.close()
if is_Geste.get() == 0:
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Geste_commercial= NULL WHERE ID =1" )
connexion.commit()
curseur.close()
if is_Avoir.get() == 1:
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Solutions_SAV= 'Avoir\n' WHERE ID =1")
connexion.commit()
curseur.close()
if is_Autre.get() == 1:
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE SAV SET Solutions_SAV= (?) WHERE ID =1", (T_Autre.get("1.0", END),))
connexion.commit()
curseur.close()
#UPDATE Details Transporteurs
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE Commande SET Transporteur= (?) WHERE ID =1", (e_track_transp.get(),))
connexion.commit()
curseur.close()
connexion = sqlite3.connect('Base_SAV.db')
curseur = connexion.cursor()
curseur.execute("UPDATE Commande SET Num_Tracking= (?) WHERE ID =1", (e_track.get(),))
connexion.commit()
curseur.close()
...
config = Tk()
config.wm_state(newstate="zoomed")
config.title('Complément de profil')
config.iconbitmap('MyCatSAV.ico')
config.minsize(1920,1280)
config.maxsize(1920,1280)
config.pack_propagate(0)
config.option_add('*tearOff', FALSE) # Nécessaire avec windows
config.update()
config.geometry(config.geometry())
is_Remb = IntVar()
is_Return = IntVar()
var_ = IntVar()
is_Geste = IntVar()
is_Avoir = IntVar()
is_Autre = IntVar()
e_track_transp = StringVar()
e_track = StringVar()
e_geste = StringVar()
Label(my_frame,text='\n\t\t').grid(row=0, column=0)
Label(my_frame,text='\t\t').grid(row=0, column=1)
Label(my_frame,text='\t\t').grid(row=0, column=2)
L_Comment = Label(my_frame, text='Commentaires SAV :', font=('Arial', 22, 'bold','underline')).grid(row=1, column=1, sticky='w')
T_Comment = Text(my_frame, height=10, width=100,font=('Arial',14))
T_Comment.grid(row=2, column=1,columnspan=7, sticky='w')
L_Solution = Label(my_frame, text='Solutions SAV :', font=('Arial', 22, 'bold','underline')).grid(row=3, column=1, sticky='w')
CB_Remb = Checkbutton(my_frame, text='Remboursement', variable=is_Remb, font=('Arial', 18,'bold'), command=save).grid(row=4, column=1, sticky='w')
CB_Return = Checkbutton(my_frame, text='Retour colis : ', variable=is_Return, font=('Arial', 18,'bold'), command=save).grid(row=5, column=1, sticky='w')
RB_Client = Radiobutton(my_frame, text='Client', variable=var_ , font=('Arial',18,'bold'), value=1, command=save).grid(row=5, column=2, sticky='w')
RB_SAV = Radiobutton(my_frame, text='SAV', variable=var_, font=('Arial',18,'bold'), value=2, command=save).grid(row=5, column=3, sticky='w')
CB_Geste = Checkbutton(my_frame, text='Geste commercial :', variable=is_Geste, font=('Arial', 18,'bold'), command=save).grid(row=6, column=1, sticky='w')
E_Geste = Entry(my_frame, textvariable=e_geste,width=6, font=('Arial', 18,'bold'))
E_Geste.grid(row=6, column=2, sticky='w')
CB_Avoir = Checkbutton(my_frame, text='Avoir', variable=is_Avoir, font=('Arial', 18,'bold'), command=save).grid(row=7, column=1, sticky='w')
CB_Autre = Checkbutton(my_frame, text='Autres : ', variable=is_Autre, font=('Arial', 18,'bold'), command=save).grid(row=8, column=1, sticky='w')
T_Autre = Text(my_frame, width=100, height=2, font=('Arial',14))
T_Autre.grid(row=9, column=1,columnspan=7 ,sticky='w')
CB_Tracking = Label(my_frame, text='Details Transporteur :', font=('Arial', 22,'bold','underline')).grid(row=10, column=1,sticky='w')
CB_Tracking_transp = Label(my_frame, text='-Transporteur :', font=('Arial',16)).grid(row=10, column=2,sticky='w')
CB_N_tracking = Label(my_frame, text='-N° Tracking :', font=('Arial',16)).grid(row=11, column=2,sticky='w')
E_Tracking_transp = Entry(my_frame,textvariable=e_track_transp, width=50, font=('Arial',14)).grid(row=10, column=3,columnspan=3,sticky='w')
E_Tracking_ = Entry(my_frame,textvariable=e_track, width=50, font=('Arial',14)).grid(row=11, column=3,columnspan=3,sticky='w')
my_frame.bind('<Return>', save_)
我点击了哪个 Checkbutton 无关紧要,什么都没有发生。受 Checkbutton 影响的变量没有改变,仍然等于 0。但是当我输入 Text 时,没关系,我只有 Checkbutton 有问题。`
编辑:我发现了我的错误。我用了 2 次 Tk() 而不是 Toplevel()
【问题讨论】:
-
我运行了你的代码,没有问题,请再次检查
-
我刚刚又试了一次,但还是有问题,我一直有
var.get() = 0。另外,我只用这部分代码创建了一个文件,它可以工作!但是一旦我在我的最终代码中使用它(复制/粘贴),它就会保持在 0...我不明白为什么 -
您是否运行了您在此处发布的代码,因为我运行了您发布的代码并且运行良好。或者试试
StringVar() -
是的,完全一样,没有区别。我试过
StringVar(),但它也不起作用?我真的不明白为什么它不起作用:/ -
好的,那可能是我无法判断的东西,因为它在我的电脑上运行良好,或者我遗漏了一些东西,但别担心别人指出。
标签: python python-3.x tkinter