Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Need help setting up a PySimpleGUI progress bar that I can maually update in script
#1
I am looking for a way to use a PYSimpleGUI progress bar... without a loop
I have looked for several days on the internet with no luck to find an example.

seems everybody does their example with a loop, or on a timer.

I'd like to do something more like a definition that I Can call to to update



I dont know what to change to make it a manually updated item...
I want to be able to tell it i=0 at the beginning of my script
and periodically place update marks thru the script(i=i+4)
so that I can update it as each Major Step in my script is done


This is the PySimpleGUI script, plus some lines showing what I want to do
This currently auto iterates...and I do not know how to change it

I'm just trying to learn and cant find any examples online to do what I want to do.

import PySimpleGUI as sg
import time
from time import sleep

#With this example... It Just auto runs from 0 to completion... this is not what I want to do, but this is teh example the creator gives
def CustomMeter():
 
    layout = [[sg.Text('A custom progress meter')],
              [sg.ProgressBar(1000, orientation='h', size=(20,20), key='progress')],
              [sg.Cancel()]]


    window = sg.Window('Custom Progress Meter').Layout(layout)
    progress_bar = window.FindElement('progress')
  
    for i in range(1000):
       
        event, values = window.Read(timeout=0)
        if event == 'Cancel' or event == None:
            break
       
        progress_bar.UpdateBar(i+1)
    
    window.Close()

prog()



time.sleep(2)
#______________________________________________________________

#I'd like to be able to do this

#i=0 at this point
prog()
#do Scripty Stuff

#Update Progress Bar Manually
#i=4 at this point

#do more scriptic writings

#Update Progress bar Manually
#i=8 at this point

#and so forth and so on until I reach 100

Quote
#2
Figured it out

just leave everything as a single line, not a definition

heres an example to help others

#this Script will create a Progress Bar
#The Progress will be Manually Updated using the format listed below
#progress_bar.UpdateBar(Value of Bar, Maximum Bar Value)
#the Window uses a .Finalize Function to make the window Persistent

#Import the PySimpleGUI Library
import PySimpleGUI as sg
#Import the Time Library for use in this script
import time

#this is for the Layout Design of the Window
layout = [[sg.Text('Custom Text')],
              [sg.ProgressBar(1, orientation='h', size=(20, 20), key='progress')],
          ]
#This Creates the Physical Window
window = sg.Window('Window Title', layout).Finalize()
progress_bar = window.FindElement('progress')

#This Updates the Window
#progress_bar.UpdateBar(Current Value to show, Maximum Value to show)
progress_bar.UpdateBar(0, 5)
#adding time.sleep(length in Seconds) has been used to Simulate adding your script in between Bar Updates
time.sleep(.5)

progress_bar.UpdateBar(1, 5)
time.sleep(.5)

progress_bar.UpdateBar(2, 5)
time.sleep(.5)

progress_bar.UpdateBar(3, 5)
time.sleep(.5)

progress_bar.UpdateBar(4, 5)
time.sleep(.5)

progress_bar.UpdateBar(5, 5)
time.sleep(.5)
#I paused for 3 seconds at the end to give you time to see it has completed before closing the window
time.sleep(3)

#This will Close The Window
window.Close()

#Thanks for Using PySimpleGUI
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  How can I measure progress and display it in the progress bar in the interface? Matgaret 2 419 Dec-11-2019, 03:30 PM
Last Post: Denni
  [PyGUI] [PySimpleGUI] How to go to next page Elmit 2 289 Nov-16-2019, 07:18 PM
Last Post: FullOfHelp
  [PySimpleGUI] update listbox not working zappfinger 2 2,920 Nov-12-2018, 08:33 PM
Last Post: zappfinger

Forum Jump:


Users browsing this thread: 1 Guest(s)