Может кто-нибудь показать мне пример использования pysimplegui не в цикле - может быть, в качестве настройки определения, который я могу обновить вручную - PullRequest
1 голос
/ 09 июня 2019

Я ищу способ использовать индикатор выполнения PYSimpleGUI ... без цикла Я искал несколько дней в интернете, и мне не повезло найти пример.

кажется, что каждый делает свой пример сцикл или таймер.

Я хотел бы сделать что-то более похожее на определение, к которому я могу обратиться, чтобы обновить

Я не знаю, что изменить, чтобы сделать его вручную обновленным.элемент ... Я хочу иметь возможность сказать это i = 0 в начале моего скрипта и периодически ставить метки обновления через скрипт (i = i + 4), чтобы я мог обновлять его, так как каждый главный шаг в моем скриптеdone

Это скрипт PySimpleGUI, плюс несколько строк, показывающих, что я хочу сделать. В настоящее время выполняется автоматическая итерация ... и я не знаю, как ее изменить

Я просто пытаюсьучиться и не могу найти какие-либо примеры в Интернете, чтобы делать то, что я хочу делать.

import PySimpleGUI as sg
import time
from time import sleep


import PySimpleGUI as sg

def prog():

    layout = [[sg.Text('Completed Tasks')],      
          [sg.ProgressBar(100, orientation='h', size=(50, 20), key='progressbar')],      
          [sg.Cancel()]]


    window = sg.Window('Progress').Layout(layout)      
    progress_bar = window.FindElement('progressbar')      

    for i in range(100):      
        event, values = window.Read(timeout=0)      
        progress_bar.UpdateBar(i + 4)
    time.sleep(2)
    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

1 Ответ

1 голос
/ 10 июня 2019

Разобрался

просто оставьте все как одну строку, а не определение

Вот пример, чтобы помочь другим

Я только что сделал реальные цифры в панели обновленияраздел, но вы можете использовать переменные (i = 0), а затем обновить его в сценарии с i = i + 1, а затем использовать i в качестве номера в функции панели обновления

i=0
progress_bar.UpdateBar(i, 5) 
#i returns a value of 0

i=i+1
progress_bar.UpdateBar(i, 5) 
#i now returns a vlaue of 1

#repeat until you reach your maximum value




#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()


...