Skip to content

PyQt6 - QRegularExpressionValidator

Python3
  • Wenn man QLineEdit Felder baut, möchte man manchmal den User zwingen nur ganz bestimmte Eingaben zu machen.

    self.input6 = QLineEdit(str(restic_keep_monthly), self)
    

    In diesem Feld kann man einstellen, wie viele Monate Restic beim Prunen aufheben soll. Damit behält Restic von jedem Monat einen Snapshot, der Rest wird gelöscht. Jetzt möchte ich das gerne auf die letzten 12 Monate begrenzen.

    Jetzt der Teil, der dafür zuständig ist, das zu überwachen.

            from PyQt6.QtGui import QIcon, QRegularExpressionValidator
            from PyQt6 import QtCore
    
            rx = QtCore.QRegularExpression('^([1-9]|[1-1][0-2])$')
            v = QRegularExpressionValidator(rx, self.input7)
            self.input7.setValidator(v)
    

    Das habe ich so zusammengebaut anhand des folgenden Beitrages.

    If you want to restrict valid input to integer values between 1 and 100, this will do it:
    ^([1-9]|[1-9][0-9]|100)$
    Explanation:
    ^ = start of input
    () = multiple options to match
    First argument [1-9] - matches any entries between 1 and 9
    | = OR argument separator
    Second Argument [1-9][0-9] - matches entries between 10 and 99
    Last Argument 100 - Self explanatory - matches entries of 100
    This WILL NOT ACCEPT: 1. Zero - 0 2. Any integer preceded with a zero - 01, 021, 001 3. Any integer greater than 100
    Quelle: https://stackoverflow.com/questions/2616974/limit-length-of-characters-in-a-regular-expression

    Mein Ausdruck

    ([1-9]|[1-1][0-2])
    
    • [1-9] erlaubt 1 - 9
    • |[1-1][0-2] erlaubt 10,11 und 12

    Ja, ich weiß ich muss dringend an den Namen der Variablen usw. arbeiten, so rx und v ist in Python nicht gerne gesehen.

  • PyPi - Pakete ein Sicherheitsproblem?

    Python3
    1
    0 Stimmen
    1 Beiträge
    72 Aufrufe
    Niemand hat geantwortet
  • Restic UI - auf PyQt6 umbauen

    Restic UI
    5
    0 Stimmen
    5 Beiträge
    184 Aufrufe
    FrankMF

    Ich hatte im Python Forum mal um Hilfe gebeten und man hat mir einen Hinweis gegeben, dem ich hier mal nachgehe.

    Der Forenuser meinte, das es ihn wundern würde, wenn ich von QtCore importieren müsste, also

    self.addDockWidget(QtCore.Qt.DockWidgetArea.RightDockWidgetArea, self.items)

    Das habe ich mal ausprobiert. Wenn ich von QtCore Qt importiere, kann ich das QtCore weglassen.

    from PyQt6.QtCore import QSettings, Qt

    dann geht auch

    self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.items)

    Es sieht so aus, das ich mich in dieses Thema noch ein wenig einarbeiten muss 🙂

  • Restic UI - Changelog

    Angeheftet Restic UI
    3
    0 Stimmen
    3 Beiträge
    262 Aufrufe
    FrankMF

    v1.5.0 - Release for restic v0.14.0 with compression and migration tool

  • 0 Stimmen
    1 Beiträge
    168 Aufrufe
    Niemand hat geantwortet
  • Python3 - class BackupList

    Python3
    2
    0 Stimmen
    2 Beiträge
    224 Aufrufe
    FrankMF

    Mir hat heute jemand auf Twitter zu meinem Problem geantwortet.

    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 - QSettings

    Python3
    1
    0 Stimmen
    1 Beiträge
    141 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    5 Beiträge
    724 Aufrufe
    FrankMF

    @berthold Hallo Berthold. Ich bin eigentlich immer noch nicht mit meinem Code zufrieden. Ist man das jemals? Da ich auch noch ein kleines Problem habe, würde ich da ungerne jemanden reinschauen lassen. Der Code ist stellenweise in deutsch kommentiert, stellenweise in englisch. Kennt man ja, man will es irgendwann mal ordentlich machen und dann kommt das nächste Problem auf einen zu.

    Hast Du Python3 Vorkenntnisse? Wenn Du "brennend" dran interessiert bist, könnte ich Dir evt. Zugang zu meinem Gitlab-Projekt geben.

    Wenn Du interessiert bist und ich dich nicht los werde :), dann schreib mir eine PN.

  • Python3 - subprocess.Popen

    Python3
    1
    0 Stimmen
    1 Beiträge
    228 Aufrufe
    Niemand hat geantwortet