ProgressBar während der Erstellung von QR-Codes

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
DMD-OL
User
Beiträge: 168
Registriert: Samstag 26. Dezember 2015, 16:21
Wohnort: Oldenburg (Oldenburg)

ProgressBar während der Erstellung von QR-Codes

Beitragvon DMD-OL » Dienstag 8. August 2017, 15:09

hi
ich lese den gesamten inhalt einer datenbank aus und erstelle daraus qr-codes.
da das (je nach dem) etwas länger dauert, würde ich gern solange eine ProgressBar in Tkinter zeigen.
kann mir da jemand helfen?
ich habe diesen code gefunden, den ich gern verwenden möchte:
  1. import tkinter as tk
  2. from tkinter import ttk
  3.  
  4.  
  5. class SampleApp(tk.Tk):
  6.  
  7.     def __init__(self, *args, **kwargs):
  8.         tk.Tk.__init__(self, *args, **kwargs)
  9.         self.button = ttk.Button(text="Start", command=self.start)
  10.         self.button.pack()
  11.         self.progress = ttk.Progressbar(self, orient="horizontal",
  12.                                         length=200, mode="determinate")
  13.         self.progress.pack()
  14.  
  15.         self.bytes = 0
  16.         self.maxbytes = 0
  17.  
  18.     def start(self):
  19.         self.progress["value"] = 0
  20.         self.maxbytes = 50000
  21.         self.progress["maximum"] = 50000
  22.         self.read_bytes()
  23.  
  24.     def read_bytes(self):
  25.         '''simulate reading 500 bytes; update progress bar'''
  26.         self.bytes += 500
  27.         self.progress["value"] = self.bytes
  28.         if self.bytes < self.maxbytes:
  29.             # read more bytes after 100 ms
  30.             self.after(100, self.read_bytes)
  31.  
  32. app = SampleApp()
  33. app.mainloop()


muß ich die gesamte größe des inhalts der datenbank kennen, damit ich die maximalgröße (self.maxbytes)
für die progessbar angeben kann?
Zuletzt geändert von Anonymous am Dienstag 8. August 2017, 15:43, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Benutzeravatar
__deets__
User
Beiträge: 2175
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: ProgressBar während der Erstellung von QR-Codes

Beitragvon __deets__ » Dienstag 8. August 2017, 15:46

Ja, musst du. Zumindest grob, ggf. kann man so etwas abschaetzen, aber ohne wenigstens eine grobe Idee geht es nicht.

Du bist damit auch dem Geheimnis auf der Spur, warum in beliebten Betriebssystemen gelegentlich Fortschrittsbalken ewig an den 99% rumknabbern....
DMD-OL
User
Beiträge: 168
Registriert: Samstag 26. Dezember 2015, 16:21
Wohnort: Oldenburg (Oldenburg)

Re: ProgressBar während der Erstellung von QR-Codes

Beitragvon DMD-OL » Dienstag 8. August 2017, 16:12

und wie mach ich das???
ich hab schon krasse probleme, die progressbar überhaupt anzeigen zu lassen, während der rechner busy is :(
Sirius3
User
Beiträge: 7065
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: ProgressBar während der Erstellung von QR-Codes

Beitragvon Sirius3 » Dienstag 8. August 2017, 16:31

@DMD-OL: die Anzahl der Einträge in einer Datenbank zu zählen sollte doch kein Problem sein? Das eigentliche Arbeiten würde ich in einem Hintergrundthread machen. Die ganze Logik sollte unabhängig von einer GUI laufen, z.B. in dem man eine Klasse hat, die man nach dem Fortschritt fragen kann, oder ein Event-System, das sich selbst bei jeder Änderung meldet.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder