Gå til innhold

«Bounce» en gtk progressbar?


Anbefalte innlegg

La oss si jeg har

       # Create the progressbar
       self.progress = gtk.ProgressBar()
       vbox.pack_start(self.progress, False, False, 0)

med self.progress.pulse() får jeg da flytta den framover. Hvordan kan jeg få den til å bounce fram og tilbake på skjermen? Jeg har sett litt på gtk.ProgressBar informasjonen, men den sier ikke noe. Må jeg inn med threads osv? dette begynner å bli vanskelig :ermm:

Lenke til kommentar
Videoannonse
Annonse

ja, skal den gå frem og tilbake må du kalle pulse med gjevne mellomrom, slik som nevnt i dokumentasjonen du linker til

 

om dette skal skje i "bakgrunnen" må du enten bruke en bakgrunnstråd, eller bruke en loop der du er innom en gang i blant og oppdaterer progressbaren når du er ferdig med en "del" av en større oppgave

 

litt vankelig og si noe om hva som er lurest sånn uten mer kontekst - men jeg vil tro du ikke trenger threading for dette

 

edit:

da jeg ikke kan nok Python ennå, paster jeg et lite ex. i Lisp som illustrerer hvordan man kan gjøre det med en bakgrunnstråd (håper den er forståelig uavhengig av språk):

 

(defun pulse ()
 (write-line "solving a small part of a big task..")
 (finish-output))


(defun bigTask ()
;; Solving takes some time.
 (sleep 10))


(defun myProgram ()
;; Spawn a background-thread that sends a
;; pulse every second. Store the thread-id in
;; a variable called `progress-bar-update-thread'.
 (let ((progress-bar-update-thread
        (withThread
          (loop
           (pulse)
           (sleep 1)))))
   (bigTask)
   (write-line "big task solved!")
;; Stop the thread that sends pulses.
   (destroyThread progress-bar-update-thread)))

Endret av dayslepr
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...