Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Como usar Progressbar
#4
Alfredo, la idea es que llames a los métodos Progressbar.step() y Tk.update_idletasks() (que evita que se congele la ventana) en cada iteración del bucle que agrega las filas a la vista de árbol. Este ejemplo funciona sin dependencias:

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import tkinter as tk
  5. from tkinter import ttk
  6.  
  7.  
  8. def getTreeViewUser(df, frame):
  9. tv = ttk.Treeview(frame, columns=("#1", "#2", "#3", "#4",'#5','#6','#7','#8','#9',
  10. "#10","#11","#12","#13","#14","#15","#16","#17","#18"))
  11. tv.heading('#0', text="Col0")
  12. tv.heading('#1', text="Col1")
  13. tv.heading('#2', text="Col2")
  14. tv.heading('#3', text="Col3")
  15. tv.heading('#4', text="Col4")
  16. tv.heading('#5', text="Col5")
  17. tv.heading('#6', text="Col6")
  18. tv.heading('#7', text="Col7")
  19. tv.heading('#8', text="Col8")
  20. tv.heading('#9', text="Col9")
  21. tv.heading('#10', text="Col10")
  22. tv.heading('#11', text="Col11")
  23. tv.heading('#12', text="Col12")
  24. tv.heading('#13', text="Col13")
  25. tv.heading('#14', text="Col14")
  26. tv.heading('#15', text="Col15")
  27. tv.heading('#16', text="Col16")
  28. tv.heading('#17', text="Col17")
  29. tv.heading('#18', text="Col18")
  30.  
  31. app.progressbar.config(maximum=10000)
  32.  
  33. for ind in range(10000):
  34. tv.insert("", tk.END, text=ind+1, values=[i for i in range(18)])
  35. app.progressbar.step()
  36. main_window.update_idletasks()
  37.  
  38. scrollbar_vertical = ttk.Scrollbar(frame, orient='vertical', command = tv.yview)
  39. scrollbar_vertical.pack(side='right', fill=tk.Y)
  40.  
  41. scrollbar_horizontal = ttk.Scrollbar(frame, orient='horizontal', command = tv.xview)
  42. scrollbar_horizontal.pack(side='bottom', fill=tk.X)
  43.  
  44. tv.configure(yscrollcommand=scrollbar_vertical.set)
  45. tv.configure(xscrollcommand=scrollbar_horizontal.set)
  46.  
  47. return tv
  48.  
  49.  
  50. def clickbutton():
  51. getTreeViewUser(None, main_window).pack(expand=True, fill='both')
  52.  
  53.  
  54. class Application(ttk.Frame):
  55. def __init__(self, main_window):
  56. super().__init__(main_window)
  57. main_window.geometry("600x500")
  58. self.button = tk.Button(main_window, text="Button", command=clickbutton).pack()
  59. self.progressbar = ttk.Progressbar(main_window)
  60. self.progressbar.pack()
  61.  
  62. main_window = tk.Tk()
  63. app = Application(main_window)
  64. app.mainloop()


Deberías poder adaptarlo fácilmente a tu caso.

Saludos
Responder


Mensajes en este tema
[Tkinter] Como usar Progressbar - por alfredo89 - 05-09-2018, 04:31 PM
RE: [Tkinter] Como usar Progressbar - por Francisco - 05-09-2018, 09:42 PM
RE: [Tkinter] Como usar Progressbar - por alfredo89 - 06-09-2018, 06:18 AM
RE: [Tkinter] Como usar Progressbar - por Francisco - 08-09-2018, 07:13 PM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)