ich kann mir vorstellen das einige jetzt aufschreien und sagen:" Oh Man, nicht schon wieder!" Ja leider schon wieder.

Seit mehreren Stunden durchforste ich das Internet, ja auch die Forensuche habe ich bemüht und 175 Einträge gefunden, nur leider kann mit den Ergebnissen nichts anfangen, sorry

Ich habe hier ein kleines "Progrämmchen", For-Schleife, (Siehe unten) macht nix anderes als per Knopfdruck eine For-schleife zu starten das auf 5 zählt.
Ich habe 2 Probleme und hoffe jemand kann mir auf die Sprünge helfen.
Zum einen wird der Eintrag des Labels nicht aktualisiert beim durchlaufen der Schleife.
Das habe ich mittlerweile verstanden das es erst nach durchlauf der Funktion aktualisiert wird.
Und ja ich weis, time.Sleep(irgendwas) ist schlecht.
Anscheinend gibt es keine einfache Lösung so ala "window.label.update()"
Es kann mit Threads gelöst werden, nur weis ich in meinem Fall leider nicht wie genau ich da vorgehen muss.
Python ist relativ neu für mich und ich bin da wirklich gerade am Anfang und am Lernen, also bitte habt Nachsicht.
Das andere Problem, wenn ich den ganzen Block...
app = widgets.QApplication(sys.argv)
window = uic.loadUi("test_for.ui")
window.start_btn.clicked.connect(start_schleife)
window.show()
sys.exit(app.exec_())
... in eine "Main" Funktion packe ala "def main():" und mit ...
if __name__ == '__main__':
main()
... Aufrufe wird, soviel ich verstanden habe die variable window in der Funktion "def start_schleife():" nicht erkannt.
Liegt vermutlich daran weil sie nur lokal in der Funktion existiert in der sie Definiert wurde.
Was/Wie muss ich es machen dass das Funktioniert ?
Wie gesagt Leute Python ist Neuland für mich und ich bin gerade dabei es zu lernen.
Gesucht im Internet habe ich lange und viel gefunden, aber bezogen auf mein Bespiel nix gefunden und verstanden

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import sys
import PyQt5.QtWidgets as widgets
import PyQt5.uic as uic
def start_schleife():
for x in range(1, int(5)+1):
window.label.setText(str(x))
print(x)
time.sleep(1)
app = widgets.QApplication(sys.argv)
window = uic.loadUi("test_for.ui")
window.start_btn.clicked.connect(start_schleife)
window.show()
sys.exit(app.exec_())
Bitte helft mir auf die Sprünge.
Danke .
Gruß
Thomas