Skip to content

Python3 - pyqtSignal

Python3
1 1 119
  • Ich habe in meinem Restic UI ein Main Window und ein Settings Window. Vom Main Window was an den Zusatz Fenstern zu ändern ist nicht das Problem, das kann man ganz einfach manipulieren.

    Zum Beispiel so

     self.show_edit_window(self)
     self.w3.input_backup_name.setText(backup_data[row].name)
    

    Jetzt brauchte ich aber für eine Funktion, die Möglichkeit von diesem Settings Windwo aus, ein Element in meinem Main Window zu manipulieren. Das hat aber nicht so geklappt, wie ich mir das vorgestellt hatte. Also im deutschen Python Forum mal nach Hilfe gefragt. Ich bekam dann ein paar Hinweise, womit ich dann wusste, wonach ich suchen musste. Ich fand diesen Beitrag auf www.stackoverflow.com

    Den Beitrag intensiv gelesen und versucht das ganze zu verstehen. Danach habe ich das in meinen Code eingebaut. Ich präsentiere hier nur die wichtigsten Codezeilen.

    Settings Window, das Objekt des Signals festlegen

    class SettingsWindow(QWidget):
    
        got_signal = pyqtSignal(str)
    

    Bei der gewünschten Aktion, das Signal auslösen

    self.got_signal.emit("SIGNAL")
    

    Main Window

    Man legt hier die Verbindung zu dem Signal fest und definiert, welche Funktion dann ausgelöst werden soll.

    if __name__ == "__main__":
    
        app = QApplication(sys.argv)
        mainWin = MainWindow()
        mainWin.show()
        w2 = SettingsWindow()
        w2.got_signal.connect(mainWin.show_it)
        app.exec()
    

    Die Funktion

    def show_it(self, the_signal):
        print(the_signal)
    

    Und hier das Ergebnis, somit sieht man was ich damit machen wollte.

  • Restic UI - Repo Version

    Restic UI restic-ui
    1
    1
    0 Stimmen
    1 Beiträge
    155 Aufrufe
    Niemand hat geantwortet
  • PyQt6 - QRegularExpressionValidator

    Python3 pyqt6 python3
    1
    0 Stimmen
    1 Beiträge
    652 Aufrufe
    Niemand hat geantwortet
  • Restic UI - Released

    Restic UI restic-ui
    1
    0 Stimmen
    1 Beiträge
    173 Aufrufe
    Niemand hat geantwortet
  • Restic UI - Documentation

    Restic UI restic-ui python3 pyqt5
    1
    1
    0 Stimmen
    1 Beiträge
    349 Aufrufe
    Niemand hat geantwortet
  • Python3 - Popen und seine Geheimnisse ;)

    Python3 restic restic-ui python3
    1
    0 Stimmen
    1 Beiträge
    218 Aufrufe
    Niemand hat geantwortet
  • Restic UI - kurzes Video

    Linux restic restic-ui
    1
    0 Stimmen
    1 Beiträge
    201 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 - Eingabeformular

    Python3 python3
    3
    1
    0 Stimmen
    3 Beiträge
    270 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]