PySimpleGUI / PySimpleGUI/PySimpleGUI
[Bug] Nested OneLineProgressMeter causes parent to break or skip
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 13.8k
- Forks
- 1.8k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Type of Issues (Enhancement, Error, Bug, Question)
Operating System
Any
Python version
3.7
PySimpleGUI Port and Version
PySimpleGUI Version:
4.30.0
tkinter version:
8.6
Your Experience Levels In Months or Years
3y___ Python programming experience
20y___ Programming experience overall
no_ Have used another Python GUI Framework (tkinter, Qt, etc) previously (yes/no is fine)?
Description of Problem / Question / Details
OneLineProgressMeter causes break upon completion of progress meter when used per the recommended method:
if not OneLineProgressMeter(values):
break
I found this maybe happening only when using multiple meters and nested loops. If you run the code below what you will find is that when the second progress meter finishes it seems to trigger the break (or something else?) which causes the first array to skip an item or end processing.
Code To Duplicate
I am going to approximate my code below:
import PySimpleGUI as sg
array1 = [1,2,3,4]
x = 0
for item in array1:
x = x + 1
if not sg.OneLineProgressMeter('123', x+1, len(array1), 1):
break
array2 = [A,B,C,D]
for itemb in array2:
y = y + 1
if not sg.OneLineProgressMeter('123',yt+1, len(array2), 2):
break
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le comportement de OneLineProgressMeter décrit dans la reproduction avec des boucles imbriquées et exécutez l’exemple Python fourni après en avoir corrigé les fautes de frappe apparentes. Vérifiez si l’achèvement du meter interne amène la boucle externe à ignorer un élément ou à s’interrompre de manière inattendue ; terminé signifie que les meters imbriqués s’achèvent sans perturber la boucle parente.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- desktop
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100