Skip to content

Python3 - QInputDialog

Python3
  • Mal heute wieder ein paar Basics

    # Ask for ID from snapshot
    msg = QInputDialog(self)
    ID = msg.getText(self, "ID of the snapshot","ID of the snapshot:", QLineEdit.Normal , "")
    print("ID ist", ID)
    print(ID)
    

    Das erzeugt folgendes Eingabefenster

    b966b841-9045-476d-9131-0e0958c55ec9-grafik.png

    Heute wollte ich bei dieser Funktion mal aufräumen. Ich habe dort vier Funktionen

    • OK
    • OK mit Eingabe
    • Cancel
    • Das X zum Fenster schließen

    OK (ohne Eingabe)

    ID ist ('', True)
    ('', True)
    

    OK (mit Eingabe)

    ID ist ('f00c870b', True)
    ('f00c870b', True)
    

    Cancel

    ID ist ('', False)
    ('', False)
    

    X

    ID ist ('', False)
    ('', False)
    

    Jetzt kann man, wenn man sich das alles in Ruhe anschaut, schnell sehen das wenn ich auf die Übergabe abfragen möchte ich zwei Zustände beachten muss.

    ('f00c870b', True)
    

    Somit muss die Abfrage wie folgt aussehen

    if ID[0] != "" and ID[1] is True:
        # Mach was, Bedingung erfüllt.
    else:
        # Mach was, Bedingung nicht erfüllt.
    

    Nun habe ich das, für mich ausreichend sauber abgefragt und die Funktion ist fertig.

  • Python - Formatumwandlung str -> float

    Python3
    1
    0 Stimmen
    1 Beiträge
    161 Aufrufe
    Niemand hat geantwortet
  • Python - Dict -> JSON und umgekehrt

    Python3
    1
    0 Stimmen
    1 Beiträge
    192 Aufrufe
    Niemand hat geantwortet
  • Python - Match-Case Statement

    Python3
    1
    0 Stimmen
    1 Beiträge
    84 Aufrufe
    Niemand hat geantwortet
  • Python - mehrsprachiges GUI

    Python3
    1
    0 Stimmen
    1 Beiträge
    119 Aufrufe
    Niemand hat geantwortet
  • Python3 - PyQt6 installieren

    Python3
    1
    0 Stimmen
    1 Beiträge
    269 Aufrufe
    Niemand hat geantwortet
  • Python3 - Globale Variablen

    Python3
    1
    0 Stimmen
    1 Beiträge
    128 Aufrufe
    Niemand hat geantwortet
  • Python3 - RegEx für ein LineEdit

    Python3
    2
    0 Stimmen
    2 Beiträge
    153 Aufrufe
    FrankMF

    Gut, Menschen die mich kennen, wissen das IPv6 nicht so mein Spezialgebiet ist. Es hilft aber nichts, auch damit muss man sich beschäftigen 🙂

    Es war etwas schwierig was Passendes zu finden, aber ich denke das hier ist ganz gut. Ob es alle Möglichkeiten bei IPv6 beinhaltet, weiß ich nicht zu 100%.

    Hier eine Seite, wo ich was Passendes gefunden habe.
    https://ihateregex.io/expr/ipv6/

    Code # regex für IPv6 reg_ex = QRegExp('^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$') input_validator = QRegExpValidator(reg_ex, self.lineedit2_ipv6) self.lineedit2_ipv6.setValidator(input_validator)

    Ein paar Test von mir ergaben, das es so aussieht als wenn es funktioniert 🙂

  • Python und GUI

    Verschoben Python3
    1
    0 Stimmen
    1 Beiträge
    155 Aufrufe
    Niemand hat geantwortet