Skip to content
  • Kategorien
  • World
  • Aktuell
  • Tags
  • Beliebt
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
linux-nerds.org

linux-nerds.org

  1. Übersicht
  2. Linux
  3. Python3
  4. Restic UI
  5. Restic UI - auf PyQt6 umbauen

Restic UI - auf PyQt6 umbauen

Geplant Angeheftet Gesperrt Verschoben Restic UI
restic-uipyqt6
5 Beiträge 1 Kommentatoren 332 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • FrankMF Offline
    FrankMF Offline
    FrankM
    schrieb am zuletzt editiert von
    #1

    Thema PyQt6 installieren, hatten wir hier abgehandelt.

    Nächstes Thema waren QSettings, das hatte ich hier in der Theorie gelöst. Heute habe ich das so weit eingebaut und es funktionierte, aber.....

    Danach ging noch nicht viel, nämlich gar nix 😀 So weit bin ich bis jetzt.

    0f48700f-2e01-4d32-b97f-f99cc3bbbcc3-grafik.png

    Wer hier aufmerksam mit liest, wird feststellen das da was fehlt. Das QDockWidget 🤔 Dafür habe ich aktuell noch keine Lösung. Was ich fixen konnte, waren die Message Boxen, das waitingspinnerwidget(?) und noch ein paar andere Kleinigkeiten.

    Ich werde hier in lockerer Folge, das ein oder andere vorstellen. Aber für heute ist Schluß, jetzt ⚽

    Im Fediverse -> @FrankM@nrw.social

    1. NanoPi R5S
    2. Quartz64 Model B, 4GB RAM
    3. Quartz64 Model A, 4GB RAM
    4. RockPro64 v2.1
    1 Antwort Letzte Antwort
    0
    • FrankMF Offline
      FrankMF Offline
      FrankM
      schrieb am zuletzt editiert von
      #2

      Manche Dinge müssen erledigt werden 😊

      2bc3bf15-7735-4641-b551-1a40a90b10b7-image.png

      QDockWidget

              ###############################################
              # QDockWidget
              ###############################################
              self.setCentralWidget(QTextEdit())
      
              # QDOCK WIDGET
              self.items = QDockWidget("Backup List", self)
              self.items.setAllowedAreas(QtCore.Qt.DockWidgetArea.RightDockWidgetArea)
              self.items.setFloating(False)
      
              # LIST WIDGET
              self.listWidget = QListWidget(self.items)
              self.listWidget.resize(300, 120)
      
              # listWidget zum QDockWidget 'items' hinzufügen
              self.items.setWidget(self.listWidget)
      
              # QDockWidget Position festlegen und Inhalt (?)
              self.addDockWidget(QtCore.Qt.DockWidgetArea.RightDockWidgetArea, self.items)
      
              # Signale
              self.listWidget.itemClicked.connect(self.clicked)
              self.listWidget.itemDoubleClicked.connect(self.clicked2)
      

      Und wenn man mal nicht weiß, wo man was findet. Das findet man in der Datei QtCore.pyi

      af1722d6-34c7-48b2-b88c-4f99b7d65c42-image.png

      Damit war ich in der Lage das Rätsel zu lösen, wie man RightDockWidgetArea aufruft.

      QtCore.Qt.DockWidgetArea.RightDockWidgetArea
      

      Ok, Schluss für heute...

      Im Fediverse -> @FrankM@nrw.social

      1. NanoPi R5S
      2. Quartz64 Model B, 4GB RAM
      3. Quartz64 Model A, 4GB RAM
      4. RockPro64 v2.1
      1 Antwort Letzte Antwort
      0
      • FrankMF Offline
        FrankMF Offline
        FrankM
        schrieb am zuletzt editiert von FrankM
        #3

        Ich möchte das mit dem QDockWidget noch mal etwas genauer betrachten. Dazu als erstes der Code aus meinem PyQt5-Projekt.

            ###############################################
            # QDockWidget
            ###############################################
        
            self.items = QDockWidget("Backup List", self)
        
            self.listWidget = QListWidget()
            self.listWidget.resize(300, 120)
        
            self.items.setWidget(self.listWidget)
            self.items.setFloating(False)
            self.setCentralWidget(QTextEdit())
            self.addDockWidget(Qt.RightDockWidgetArea, self.items)
        
            # click connect
            self.listWidget.itemClicked.connect(self.clicked)
            self.listWidget.itemDoubleClicked.connect(self.clicked2)
        

        Schauen wir mal, welche Zeile mir Probleme bereitete.

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

        Kam immer folgender Traceback

        Traceback (most recent call last):
          File "/home/frank/restic_ui_pyqt6/src/restic_ui.py", line 4360, in <module>
            mainWin = MainWindow()
          File "/home/frank/restic_ui_pyqt6/src/restic_ui.py", line 2926, in __init__
            self.addDockWidget(Qt.RightDockWidgetArea, self.items)
        NameError: name 'Qt' is not defined
        

        Wir laden mal die Definitionen, Rechtsklick auf RightDockWidgetArea und das hier wird einem angezeigt.

            class DockWidgetArea(enum.Flag):
                LeftDockWidgetArea = ... # type: Qt.DockWidgetArea
                RightDockWidgetArea = ... # type: Qt.DockWidgetArea
                TopDockWidgetArea = ... # type: Qt.DockWidgetArea
                BottomDockWidgetArea = ... # type: Qt.DockWidgetArea
                AllDockWidgetAreas = ... # type: Qt.DockWidgetArea
                NoDockWidgetArea = ... # type: Qt.DockWidgetArea
        

        Im File steht folgendes

        # The PEP 484 type hints stub file for the QtCore module.
        

        Ok ein File was uns Hinweise gibt. Unsere Funktion RightDockWidgetArea befindet sich in der Klasse DockWidgetArea. Darum hatte ich abgeleitet, das es

        Qt.DockWidgetArea.RightDockWidgetArea
        

        heißen muss. Das funktionierte aber auch nicht. Das richtige Ergebnis ist

        QtCore.Qt.DockWidgetArea.RightDockWidgetArea
        

        Irgendwie werde ich das Gefühl nicht los, das ich einen Denkfehler habe. Ich muss mal die Experten in Python Forum fragen, ob das so korrekt ist.

        Quelle

        Link Preview Image
        Qt Documentation | Qt Releases

        favicon

        (doc.qt.io)

        Im Fediverse -> @FrankM@nrw.social

        1. NanoPi R5S
        2. Quartz64 Model B, 4GB RAM
        3. Quartz64 Model A, 4GB RAM
        4. RockPro64 v2.1
        1 Antwort Letzte Antwort
        0
        • FrankMF Offline
          FrankMF Offline
          FrankM
          schrieb am zuletzt editiert von
          #4

          Noch ein Beispiel.

          # RegEx
          reg_ex2 = QRegExp('^[A-Za-z0-9-_>@]{16}$')
          input_validator2 = QRegExpValidator(reg_ex2, self.input4)
          self.input4.setValidator(input_validator2)
          

          Richtig

          reg_ex2 = QtCore.QRegularExpression('^[A-Za-z0-9-_>@]{16}$')
          input_validator2 = QRegularExpressionValidator(reg_ex2, self.input4)
          self.input4.setValidator(input_validator2)
          

          Der entsprechende Import

          from PyQt6.QtGui import QIcon, QAction, QValidator, QRegularExpressionValidator
          

          Im Fediverse -> @FrankM@nrw.social

          1. NanoPi R5S
          2. Quartz64 Model B, 4GB RAM
          3. Quartz64 Model A, 4GB RAM
          4. RockPro64 v2.1
          1 Antwort Letzte Antwort
          0
          • FrankMF Offline
            FrankMF Offline
            FrankM
            schrieb am zuletzt editiert von
            #5

            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 🙂

            Im Fediverse -> @FrankM@nrw.social

            1. NanoPi R5S
            2. Quartz64 Model B, 4GB RAM
            3. Quartz64 Model A, 4GB RAM
            4. RockPro64 v2.1
            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            • FrankMF

              Restic UI - Stand Januar 2023

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PyWebIO restic-ui pywebio python
              1
              0 Stimmen
              1 Beiträge
              157 Aufrufe
              Niemand hat geantwortet
            • FrankMF

              Restic - 0.15.0 released

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Restic restic restic-ui
              1
              1
              0 Stimmen
              1 Beiträge
              116 Aufrufe
              Niemand hat geantwortet
            • FrankMF

              ResticUI with PyWebIO - Repo

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PyWebIO pywebio python restic-ui
              1
              0 Stimmen
              1 Beiträge
              125 Aufrufe
              Niemand hat geantwortet
            • FrankMF

              Python3 - pyqtSignal

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Python3 python3 restic-ui
              1
              0 Stimmen
              1 Beiträge
              125 Aufrufe
              Niemand hat geantwortet
            • FrankMF

              PyQt6 - QRegularExpressionValidator

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Python3 pyqt6 python3
              1
              0 Stimmen
              1 Beiträge
              664 Aufrufe
              Niemand hat geantwortet
            • FrankMF

              Restic UI - Released

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Restic UI restic-ui
              1
              0 Stimmen
              1 Beiträge
              175 Aufrufe
              Niemand hat geantwortet
            • FrankMF

              Restic UI - User documentation

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Restic UI restic-ui python3 pyqt5
              1
              7
              0 Stimmen
              1 Beiträge
              294 Aufrufe
              Niemand hat geantwortet
            • FrankMF

              Restic UI - kurzes Video

              Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Linux restic restic-ui
              1
              0 Stimmen
              1 Beiträge
              203 Aufrufe
              Niemand hat geantwortet
            Powered by NodeBB | Contributors
            © 2022 frank-mankel.de
            Fediverse
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Kategorien
            • World
            • Aktuell
            • Tags
            • Beliebt