Skip to content

Python3 - QInputDialog

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

  • Restic UI - QtWaitingSpinner unexpected type 'float'

    Restic UI restic-ui python3
    2
    0 Stimmen
    2 Beiträge
    327 Aufrufe
    FrankMF
    Der Autor hat meine Anpassungen um ein paar Änderungen erweitert und in sein Repo eingepflegt. Der QtWaitingSpinenr ist jetzt auch 3.10 kompatibel [image: 1641634993220-1b268980-92ca-42a4-89a0-a6e4b7ab9378-grafik.png]
  • Restic UI - QThread

    Restic UI restic-ui python3
    1
    0 Stimmen
    1 Beiträge
    162 Aufrufe
    Niemand hat geantwortet
  • Django - Webframework

    Python3 django python3
    1
    2
    0 Stimmen
    1 Beiträge
    149 Aufrufe
    Niemand hat geantwortet
  • Python3 - QT_QPA_PLATFORM

    Python3 pyqt5 python3
    2
    2
    0 Stimmen
    2 Beiträge
    435 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 - QSettings

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

    Python3 python3
    1
    0 Stimmen
    1 Beiträge
    177 Aufrufe
    Niemand hat geantwortet
  • Python3 - Eingabeformular

    Python3 python3
    3
    1
    0 Stimmen
    3 Beiträge
    275 Aufrufe
    FrankMF
    Meine endgültige Lösung, zu mindestens im Moment , ist ein zweites Window. Das gefällt mir am Besten, komme ich zu mindestens im Moment einfach besser mit klar. Aber, eines der größten Probleme war für mich, wie aktualisiere ich die Liste im Hauptfenster!? Da habe ich doch etliche Stunden dran rum gefummelt.... Hier nur mal das Layout ##################### # Layout ##################### self.formGroupBox = QGroupBox("Form layout") layout = QFormLayout() layout.addRow(self.label_1) layout.addRow(QLabel("Backup Name:"), self.input1) layout.addRow(QLabel("Repository:"), self.button3) layout.addRow(QLabel("Source:"), self.button4) layout.addRow(QLabel("Password:"), self.input4) layout.addRow(self.label_6) layout.addRow(self.button2) self.formGroupBox.setLayout(layout) self.setLayout(layout) Das mit dem SecondWindow ist aber was aufwändiger. Da mach ich dann mal einen eigenen Beitrag zu. Aktuell sieht das so aus. [image: 1604819923887-6c68c956-9127-438f-bc54-4dcef8e18f00-image.png]
  • Python3 - RegEx für ein LineEdit

    Python3 pyqt5 python3
    2
    1
    0 Stimmen
    2 Beiträge
    249 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