Skip to content

Restic UI - QtWaitingSpinner unexpected type 'float'

Restic UI
  • Der QtWaitingSpinner in meinem Restic UI lief nicht mit Python 3.10.1 😞 Da Linux Mint Cinnamon aber mit dem Upgrade auf 20.3 Python 3.10 mitbringt, musste ich da ran und das Fixen 😉

    Fehler

    TypeError: setInterval/self, int): argument 1 has unexpected type 'float'
    

    Grübel, ein wenig suchen und drüber gestolpert das das Problem öfter auftaucht. Gut, schauen wir uns die Zeile mal in Ruhe an.

        def updateTimer(self):
            self._timer.setInterval(1000 / (self._numberOfLines * self._revolutionsPerSecond))
    

    Ok, einfach ein wenig Mathe, das bekommen wir hin. Suchen wir mal die Variablen.

            self._revolutionsPerSecond = 1.57079632679489661923
            self._numberOfLines = 20
    

    Wenn man nun weiß, das eine Variable int eine ganzzahlige Zahl sein muss, dann sieht man sofort das Problem. Die Zahl 1.570.... macht aus dem Ergebnis einen float (Fließkommazahl).

    Das timer.setInterval erwartet aber einen int. Darum bricht python auch mit einem Traceback ab. Gut, ich habe dann mit dieser Zeile ein wenig gespielt und herausbekommen, das es nur die Geschwindigkeit der Änderung des Spinners beeinflusst. Sollte also egal sein, wenn wir diese Zahl etwas verändern. Es ist dann evt. nicht mehr so fein einzustellen, aber das sollte nicht stören.

        def updateTimer(self):
            self._timer.setInterval(int(1000 / (self._numberOfLines * self._revolutionsPerSecond)))
    

    Die geänderte Zeile, die sicherstellt, das an die Funktion setInterval nur ein int Wert übergeben wird. Ausprobiert, Fehler weg, dafür kamen noch ein paar andere, alle mit demselben Problem. Ich habe diese dann alle so gefixt und mein Restic UI läuft auch mit Python 3.10.1, seit heute auch auf Windows getestet 🤕

    Ich habe bei dem Projekt einen Issue eröffnet und meine Änderungen da reingehauen. Ich habe keinen Pull request erstellt, weil ich nicht überblicken kann, wo das in dem Projekt noch Auswirkungen hat. Bin ja in der Lernphase..

    Der Link -> https://github.com/z3ntu/QtWaitingSpinner

    Anhang

    Dieses Problem war wohl schon länger bekannt und führte in Python 3.9 zu einem Warning, seit 3.10 gibt es kein Warning mehr, sondern ein Traceback und somit muss man ran und es ändern.

  • Der Autor hat meine Anpassungen um ein paar Änderungen erweitert und in sein Repo eingepflegt. Der QtWaitingSpinenr ist jetzt auch 3.10 kompatibel 🤓

    1b268980-92ca-42a4-89a0-a6e4b7ab9378-grafik.png

  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • 0 Stimmen
    2 Beiträge
    441 Aufrufe
    FrankMF
    Ich habe den Sonntag mal genutzt um ein wenig was einzubauen. Einmal habe ich mit datatables.net die Tabelle etwas funktionaler gestaltet. [image: 1736705735786-00a95363-1f41-4bbf-884a-34f21aea81e4-grafik.png] Man kann nun suchen, sortieren und wenn man mehr als 10 Datenpunkte hat, hat die Tabelle auch Pagination. Ein nettes Projekt, macht einiges einfacher Das nächste, ich hatte es im Video ja kurz erwähnt, mir fehlte ja noch die Restore Funktion von Restic. Ok, ist jetzt auch drin. Da die Benutzerverwaltung mittlerweile komplett eingebaut ist, werde ich demnächst meine Test Datenbanken und alles was damit zu tuen hat, aus dem Code entfernen. Brauch ich jetzt nicht mehr. Habe jetzt zwei Benutzer, einen Produktiven und einen zum Testen. Langfristig steht auch noch eine zweite Sprache auf dem Zettel. Aber, dafür muss ich Lust haben, das Thema juckt nicht so richtig
  • Python3 - pyqtSignal

    Python3 python3 restic-ui
    1
    0 Stimmen
    1 Beiträge
    117 Aufrufe
    Niemand hat geantwortet
  • Python - mehrsprachiges GUI

    Python3 python3
    1
    1
    0 Stimmen
    1 Beiträge
    206 Aufrufe
    Niemand hat geantwortet
  • Django - Webframework

    Python3 django python3
    1
    2
    0 Stimmen
    1 Beiträge
    145 Aufrufe
    Niemand hat geantwortet
  • Restic UI - Released

    Restic UI restic-ui
    1
    0 Stimmen
    1 Beiträge
    171 Aufrufe
    Niemand hat geantwortet
  • Python3 - class BackupList

    Python3 python3
    2
    0 Stimmen
    2 Beiträge
    283 Aufrufe
    FrankMF
    Mir hat heute jemand auf Twitter zu meinem Problem geantwortet. https://twitter.com/OliverTheUnique/status/1381888728080211968 Das habe ich natürlich direkt, bei einer Tasse Kaffee, ausprobiert. Geht einwandfrei und ein Problem ist damit Vergangenheit. Bei meiner Konstruktion musste ich immer eine Länge für die Liste p vorgeben. p = list(range(10)) Das wird jetzt nicht mehr benötigt. Schön Jetzt muss ich mir das noch in Ruhe anschauen, nachlesen und verstehen. Danke für den netten Hinweis!
  • Python3 - PyQt5 Layout

    Python3 pyqt5 python3
    1
    2
    0 Stimmen
    1 Beiträge
    204 Aufrufe
    Niemand hat geantwortet
  • Python3 - QSettings

    Python3 python3
    1
    0 Stimmen
    1 Beiträge
    184 Aufrufe
    Niemand hat geantwortet