Buenas estoy teniendo problemas al pasar el valor de la variable de un menubutton desde un frame secundario:
Label(pGui.extra_figures_frame,text="Figure 1").grid(row=0,column=0,sticky=W)
#Menubuttons2 init
pGui.menubuttonx2=Menubutton(pGui.extra_figures_frame,text="Choose X",relief=RAISED,width=50)
pGui.menubuttonx2.grid(row=1,column=0,sticky=W)
pGui.menubuttonx2.menu=Menu(pGui.menubuttonx2,tearoff=0)
pGui.menubuttonx2["menu"]=pGui.menubuttonx2.menu
pGui.menubuttony2=Menubutton(pGui.extra_figures_frame,text="Choose Y",relief=RAISED,width=50)
pGui.menubuttony2.grid(row=1,column=1,sticky=W)
pGui.menubuttony2.menu=Menu(pGui.menubuttony2,tearoff=0)
pGui.menubuttony2["menu"]=pGui.menubuttony2.menu
#Menubuttons fill
descName2=[]
pGui.descNamex2=StringVar()
j=0
for descWords2 in pGui.sepDescFile:
descInfo2=descWords2.split()
descName2.append(descInfo2[1])
pGui.descNamex2=descName2[j]
pGui.menubuttonx2.menu.add_checkbutton(label=pGui.descNamex2,variable=pGui.xlab2,onvalue=j,offvalue=0)
pGui.menubuttony2.menu.add_checkbutton(label=pGui.descNamex2,variable=pGui.ylab2,onvalue=j,offvalue=0)
j=j+1
Ahí aparecen los menubuttons y al seleccionar la opción la variable se queda en 0 siempre
En el frame principal tengo otros menubuttons iguales y sí que pasan bien sus respectivas variables:
#menubuttons for x1 and y1
pGui.menubuttonx1=Menubutton(pGui,text="Choose X",relief=RAISED,width=50)
pGui.menubuttonx1.grid(row=1,column=0,sticky=W)
pGui.menubuttonx1.menu=Menu(pGui.menubuttonx1,tearoff=0)
pGui.menubuttonx1["menu"]=pGui.menubuttonx1.menu
#menubuttonx1.menu.add_checkbutton(label="Option 1",variable=pGui.xlab1,onvalue=1,offvalue=0)
#menubuttonx1.menu.add_checkbutton(label="Option 2",variable=pGui.xlab1,onvalue=2,offvalue=0)
pGui.menubuttony1=Menubutton(pGui,text="Choose Y",relief=RAISED,width=50)
pGui.menubuttony1.grid(row=1,column=1,sticky=W)
pGui.menubuttony1.menu=Menu(pGui.menubuttony1,tearoff=0)
pGui.menubuttony1["menu"]=pGui.menubuttony1.menu
Se rellenan desde otra función con:
descName=[]
pGui.descDesc=[]
pGui.descNamex1=StringVar()
pGui.descNamex2=StringVar()
i=0
for descWords in pGui.sepDescFile:
descInfo=descWords.split()
descName.append(descInfo[1])
pGui.descDesc.append(descInfo[2:25])
pGui.descNamex1=descName[i]
#pGui.descNamex2=descName[i]
pGui.menubuttonx1.menu.add_checkbutton(label=pGui.descNamex1,variable=pGui.xlab1,onvalue=i,offvalue=0)
pGui.menubuttony1.menu.add_checkbutton(label=pGui.descNamex1,variable=pGui.ylab1,onvalue=i,offvalue=0)
#pGui.menubuttonx2.menu.add_checkbutton(label=pGui.descNamex2,variable=pGui.xlab2,onvalue=i,offvalue=0)
#pGui.menubuttony2.menu.add_checkbutton(label=pGui.descNamex2,variable=pGui.ylab2,onvalue=i,offvalue=0)
i=i+1
Y se reciben en otra función para convertirlos en gráficas
xc1=pGui.xlab1.get()
yc1=pGui.ylab1.get()
xc2=pGui.xlab2.get()
yc2=pGui.ylab2.get()
¿Alguien sabe a qué se debe?
Desde el frame principal poniendo los menubuttons del frame secundario funcionan perfectamente