[python] probléme avec un check button

Fermé
momo - 23 janv. 2008 à 10:18
 momo - 23 janv. 2008 à 14:05
Bonjour,
j'ai un probléme, je suis nouveau dans la programmation python et ca fait une semaine que je qalére avec un check button

je veut que mon checkbutton soit cocher quand je charge le frame.
si le checkbutton cocher il y'a un field"A" qui est enbele, et s'il est decocher il y'a un filed "B" qui est enabled et vice vers ca.
voila mon code:

def setFrameStepSelectServices(setupFrame):
setupFrame.createNewFrameStep(SELECT_SERVERS_CONFIG_MESSAGE)
setupFrame.setNextPreviousState(True, True)
rowId=0
f = Frame(setupFrame.centerFrame)
f.grid(row=rowId, sticky=EW)
columnID = 0

#Server list with checkBox
for server in serverList:
if not server in countedServerList:
if not setupFrame.serversList.has_key(server):
setupFrame.serversList[server] = IntVar()
setupFrame.serversList[server].set(True)
"""check = Checkbutton(f, text=server, variable=setupFrame.serversList[server])"""
check = Checkbutton(f, text=DIC_OF_TYPE.get(server,server), variable=setupFrame.serversList[server])
check.grid(row=rowId, column=columnID, sticky=W)
if columnID:
rowId = rowId + 1
columnID = 0
else:
columnID = columnID + 1
if columnID:
rowId = rowId + 1


#Server List with parameters
for server in countedServerList:
#inner = Frame(f)
if not setupFrame.serversList.has_key(server):
setupFrame.serversList[server] = StringVar()
setupFrame.serversList[server].set('1')
#if server == 'PROCESSING':
#setupFrame.serversList[server].set('1')

#else:
#setupFrame.serversList[server].set('1')
if server == 'PROCESSING':
inner = Frame(f)
rowId = rowId + 1
Label(inner, text=server).pack(side=LEFT)
setupFrame._entryProcessing = Entry(inner,textvariable=setupFrame.serversList[server], width=4, state=NORMAL)
setupFrame._entryProcessing.pack(side=RIGHT)
inner.grid(row=rowId, column=0, sticky=EW)

inner = Frame(f)
setupFrame.ckAsynch = Checkbutton(inner , text="ASYNCHRONE" , variable = setupFrame.ASYN_PROCESSING_.get(), onvalue="y", offvalue="n" )
setupFrame.ckAsynch.pack(side=LEFT)
inner.grid(row=rowId, column=1, sticky=EW)

rowId = rowId + 1
inner = Frame(f)
Label(inner, text="THREAD_COUNTER").pack(side=LEFT)
setupFrame._entryMaxTh =Entry(inner,textvariable=setupFrame.MAXTHREAD_PROCESSING_, width=4, state=NORMAL)
setupFrame._entryMaxTh.pack(side=RIGHT)
inner.grid(row=rowId, column=1, sticky=EW)
rowId = rowId + 1

else:
rowId = rowId + 1
inner = Frame(f)
Label(inner, text=server).pack(side=LEFT)
_entry = Entry(inner,textvariable=setupFrame.serversList[server], width=4)
_entry.pack(side=RIGHT)
inner.grid(row=rowId, column=0, sticky=EW)
rowId = rowId + 1

setupFrame.ckAsynch.bind("<ButtonPress>",lambda event : ON_ASYNCHRONE_CHECKED(setupFrame,event))

ON_ASYNCHRONE_CHECKED(setupFrame,None)




def ON_ASYNCHRONE_CHECKED(setupFrame,evt):

X=setupFrame.ASYN_PROCESSING_.get()

if X=="y":
#self._entryMaxTh=1
setupFrame._entryMaxTh.delete(0,END)
setupFrame._entryMaxTh.insert(INSERT,1)

setupFrame._entryProcessing.config(state = NORMAL)
setupFrame._entryMaxTh.config(state = DISABLED)

else:
#self._entryProcessing=1
setupFrame._entryProcessing.delete(0,END)
setupFrame._entryProcessing.insert(INSERT,1)
#self._entryProcessing.enable =false
setupFrame._entryProcessing.config(state = DISABLED)
setupFrame._entryMaxTh.config(state = NORMAL)



le setupFrame.ASYN_PROCESSING_.get() contient "y"
mon probléme est que mon check button quand le frame est charger est décocher alors que ca valeur est "y"
et puis quand je le coche est le decoche il n'ya rien qui se passe


s'il vous plait peut etre que c'est debile mais vraiment jy' arrive pas, donc SOS
merci pour votre aide
A voir également:

4 réponses

s'il vous plait un minimum d'aide:((
y'a personne qui a une idéé??
0
si quelqu'un aura le meme probléme que moi, voila comment faire
au lieu de
setupFrame.ckAsynch = Checkbutton(inner , text="ASYNCHRONE" , variable = setupFrame.ASYN_PROCESSING_.get(), onvalue="y", offvalue="n" )
faire
setupFrame.variable = StringVar()
setupFrame.variable.set(setupFrame.ASYN_PROCESSING_.get())
setupFrame.ckAsynch = Checkbutton(inner , text="ASYNCHRONE" , variable = setupFrame.variable, onvalue="y", offvalue="n" )


def ON_ASYNCHRONE_CHECKED(setupFrame,evt):

X=setupFrame.variable.get()#
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 121
23 janv. 2008 à 11:35
Salut,

vous avez mis trop de code, j'ai pas pu suivre, désolé!
0
ca ne fait rien, merci commeme ,
la prochaine fois j'essayerai de faire le tri
0