Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ovichan en 20 Agosto 2013, 05:48 am



Título: [Python] Scrollbar dentro de un listbox
Publicado por: ovichan en 20 Agosto 2013, 05:48 am
Bueno estoy diseñando una UI para un programa... todo es relativamente precario pues estoy aprendiendo poco a poco como manejarlo. He conseguido insertar un scrollbar dentro del listbox, sin embargo el problema radica en que el scrollbar no desaparece nunca, ni cuando no hay elementos en el listbox. Estoy probando usando Grid, imagino que con pack se puede hacer de otra manera, lo digo pq por ahora me interesa hacerlo con este comando.

El codigo:

Código
  1. import os, sys
  2. import win32api
  3. import platform
  4. import gettext
  5. import locale
  6. import sys
  7. from time import sleep
  8.  
  9. #GUI para EACUI
  10. try:
  11.    import tkinter
  12.    from tkinter import *
  13. except ImportError:
  14.    raise ImportError("Se requiere el modulo Tkinter")
  15.  
  16. #Configure gettext Define the '_()' function
  17.  
  18. APP_NAME = "EACUI"
  19. LOCALE_DIR = ('C:\Locale\es\LC_MESSAGES')
  20.  
  21. gettextt = gettext.translation(APP_NAME, LOCALE_DIR,fallback=True)
  22. _ = gettextt.gettext
  23.  
  24. #Ventana
  25. root = tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=1)
  26.  
  27. '''Titulos'''
  28. root.wm_title("Eac3to GUI v0.0")
  29. #root.title("Eac3to GUI v0.0")
  30. root.wm_frame()
  31.  
  32. '''Etiqueta'''
  33. #etiqueta=tkinter.Label(root,text="Eac3to GUI v0.0")
  34. #etiqueta.grid(row=1, column=1)
  35.  
  36.  
  37. '''Dimension ventana'''
  38. root.wm_maxsize(1000, 1000)
  39. root.wm_minsize(640,640)
  40. root.wm_geometry('640x640')
  41. root.wm_iconbitmap('.\icon.ico')
  42.  
  43.  
  44. '''Menus'''
  45. #File
  46. menu = tkinter.Menu(root)
  47. root.config(menu=menu)
  48. menu1_1 = tkinter.Menu(menu, tearoff=0)
  49. menu.add_cascade(label=_("File"), menu=menu1_1)
  50. menu1_1.add_command(label=_("Open"))
  51. menu1_1.add_command(label=_("Close"))
  52. #Options
  53. menu1_2 = tkinter.Menu(menu, tearoff=0)
  54. menu.add_cascade(label=_("Options"), menu=menu1_2)
  55. menu1_2.add_command(label=_("Setup"),command=lambda: setup(_("Setup")))
  56. menu1_2.add_separator()
  57. menu1_2_1 = tkinter.Menu(menu1_2, tearoff=0)
  58. menu1_2.add_cascade(label=_("Language"), menu=menu1_2_1)
  59. menu1_2_1.add_command(label=_("English"),command=lambda: language(_("English")))
  60. menu1_2_1.add_command(label=_("Spanish"),command=lambda: language(_("Spanish")))
  61. #Help
  62. menu1_3 = tkinter.Menu(menu1_2, tearoff=0)
  63. menu.add_cascade(label=_("Help"), menu=menu1_3)
  64. menu1_3.add_command(label=_("About"),command=lambda: about(_("About")))
  65.  
  66. '''Ventana de carga con scrollbar interno usando Grid'''
  67. text = tkinter.Listbox(root)
  68. text.grid(padx=10,pady=10)
  69. text.bindtags((text, root, "all"))
  70. #for i in range(20):
  71.    #text.insert(i,i)
  72. scrl = Scrollbar(root, command=text.yview)
  73. text.config(yscrollcommand=scrl.set)
  74. scrl.grid_rowconfigure(10)
  75. #scrl.grid(ipadx=200,ipady=20,sticky='e',rowspan=5)
  76. scrl.grid(in_=text,ipadx=200,ipady=20,sticky='ns')
  77.  
  78. '''Ventana de carga'''
  79. #windows_load=tkinter.Text(root,height = 1, width=int(root.winfo_width())-580,font=("Times", 12),state=tkinter.NORMAL, cursor='arrow',insertwidth=2,exportselection=1)
  80.  
  81. #windows_load=tkinter.Listbox(root,height=10,width=int(root.winfo_width())-580)
  82. #windows_load.bindtags((windows_load, root, "all"))
  83. #for i in range(20):
  84.    #windows_load.insert(i,i)
  85.  
  86. #windows_load.pack(anchor='nw',side=TOP, fill=Y, expand=FALSE,padx=10,pady=10)
  87.  
  88.  
  89. '''Ejecucion'''
  90. root.mainloop()

¿En donde estoy metiendo la pata?


Título: Re: [Python] Scrollbar dentro de un listbox
Publicado por: fallout20xx en 20 Septiembre 2013, 12:19 pm
usa mejor wx para python, es mas profesional.


Título: Re: [Python] Scrollbar dentro de un listbox
Publicado por: F3niX14 en 22 Septiembre 2013, 06:15 am
No es por quitarte la nota, pero mejor Usa PyQT4 , lo agradeceras, nadie usa Tk/Tkinter.
Saludos