Problema con checkbuttons

Ernesto Revilla erny en sicem.biz
Vie Abr 29 13:42:41 CEST 2005


Hola,

lo primero, la librería se llama Tkinter  , no Thinker, porque es la 
interfaz de Python para Tk  (Tcl/Tk), donde Tk significa Toolkit y Tcl, 
segun me acuerdo, algo como Tool Command Language [1]

Segundo, usa el método grid para hacer un diseño en 2 columnas:

for i,cb in enumerate(checkbuttons):   # enumerate devuelve una lista de tuplas (0,elemento1), (1,elemento2), (3,elemento3)...., que enumera todos los elementos de la lista pasada como parámetro
    cb.grid(column=i % 2, row=i / 2)   #  primer operador (%) es op. módulo, segundo (/) división de enteros


Atención: no puedes meclar .grid y .pack en un mismo contenedor (Frame, 
Toplevel, etc.)


Un saludo,
Erny
   




[1] http://www.auditmypc.com/acronym/TCL.asp

Abel Aranda escribió:

> 
>Buenas, estoy intentando hacer una aplicación grafica en python, pa
>monitorizar ordenadores, y me encuentro con el siguiente problema, al
>definir checkbuttons para cada maquina no consigo que me salgan en
>varias columnas dependiendo de las que se necesiten, 
> 
>El numero de checkbuttons que se crean es el que se le pase en la lista
>y puede ir variando
> 
>A ver si alguién me puede ayudar
> 
>Lo estoy realizando con thinker
> 
> 
>Aki pego el codigo
> 
> 
>from Tkinter import *
>root = Tk()
>class Pines:
>  def radiocheck (self,label,allObjects):
>    personalFrame = Frame (root)
>    personalFrame.pack (side=LEFT, fill=X, expand=1)
>    personalLabel = Label (personalFrame, text=label)
>    personalLabel.pack (side=TOP, anchor=W)
>    self.checkObjects = []
>    for i in allObjects:
>      if i[1] == "c":
>        self.checkObjects.append(StringVar())
>        oneObject = Checkbutton (personalFrame, text=i[0],
> 
>variable=self.checkObjects[-1],anchor='e',highlightthickness=80,
>          onvalue=i[0], offvalue="")
>        oneObject.pack (side=TOP, anchor=W)
>    Button(personalFrame,text="Test",command=self.test).pack()
> 
>  def test(self):
>    print [check.get() for check in self.checkObjects
>      if check.get()]     
> 
>global objectGenreList,genreList
>objectGenreList =
>(('Komoedie','c'),('Horror','c'),('Drama','c'),('Komoedie','c'))
>genreList = Pines()
>genreList.radiocheck('Maquinas',objectGenreList)
>root.mainloop()
> 
>Un Saludo
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>Abel Aranda Arriscado
>   Administrador 
>   CEDAS
>
> Centro de Datos, Administración y Soporte
>   e-mail: abel.aranda en salud.madrid.org 
>   tfno: 91 4265549,  móvil: 670726950
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>El contenido de esta comunicación debe considerarse privado y
>confidencial. Si Vd. no es el destinatario y la hubiere recibido por
>error, se le informa que cualquier divulgación, distribución o copia de
>esta comunicación está estrictamente prohibida; por favor, notifíquelo
>inmediatamente al  remitente y elimine este mensaje. 
>
>This Email is intended for the exclusive use of the addressee only. If
>you are not the intended recipient, you should not use the contents nor
>disclose them to any other person and you should immediately notify the
>sender and delete the Email.
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
> 
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo/python-es
>
>  
>


-- 
=========================================
    NO A LAS PATENTES DE SOFTWARE
    http://proinnova.hispalinux.es
=========================================

Ernesto Revilla
sicem sl
Pol. Ind. Juncaril, c/ Loja Parc. 7 Local 13
18220 Albolote
http://www.sicem.biz
Tel: 637 716189
MSN: aerd en mx3.redestb.es
ICQ: 163888521



---
avast! Antivirus: Saliente mensaje limpio.
Base de datos de Virus (VPS): 0517-3, 28/04/2005
Comprobado en: 29/04/2005 13:42:42
avast! tiene los derechos reservados (c) 2000-2004 ALWIL Software.
http://www.avast.com




Más información sobre la lista de distribución Python-es