Skip to content

PyQt6 - QRegularExpressionValidator

Python3
1 1 656
  • 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.

  • Python3 - pyqtSignal

    Python3 python3 restic-ui
    1
    0 Stimmen
    1 Beiträge
    122 Aufrufe
    Niemand hat geantwortet
  • Python3 - PyQt6 installieren

    Python3 pyqt6 python3
    1
    0 Stimmen
    1 Beiträge
    431 Aufrufe
    Niemand hat geantwortet
  • Python3 - QT_QPA_PLATFORM

    Python3 pyqt5 python3
    2
    2
    0 Stimmen
    2 Beiträge
    417 Aufrufe
    FrankMF
    Nachdem ich ja mittlerweile schon lange weder auf Cinnamon bin, hatte ich nach einem Update von VSCodium wieder ein anderes Design. Ok, schauen wir rein. (venv) frank@frank-MS-7C37:~/restic-ui-public$ env | grep "QT" QT_ACCESSIBILITY=1 QT_QPA_PLATFORMTHEME=qt5ct Wenn ich das auf QT_QPA_PLATFORMTHEME=gnome3 ändere, sieht es wie auf meinem Linux Mint Cinnamon Desktop aus.
  • Python3 - PyQt5 Layout

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

    Python3 python3
    1
    0 Stimmen
    1 Beiträge
    187 Aufrufe
    Niemand hat geantwortet
  • Python3 - String-Operatoren

    Python3 python3
    1
    0 Stimmen
    1 Beiträge
    174 Aufrufe
    Niemand hat geantwortet
  • Restic UI - mein zweites Python3 Projekt

    Python3 pyqt5 restic python3
    5
    0 Stimmen
    5 Beiträge
    889 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 restic python3
    1
    0 Stimmen
    1 Beiträge
    340 Aufrufe
    Niemand hat geantwortet