Speichern einer eingabe in PyQt5

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Teer2008_OS
User
Beiträge: 1
Registriert: Sonntag 18. April 2021, 11:59

Guten Tag, ich bin gerade dabei PyQt5 zu lernen.
Ich habe gerade ein einfaches Programm mit nichts als einer Checkbox.
Ich würde es gerne hinbekommen das wenn ich die Checkbox aktiviere und das Programm Neustarte das die Checkbox das immer angeklickt ist.
Ich habe versucht das mit Pickle zu lösen aber da habe ich nur Fehlermeldungen bekommen.
Hat jemand eine Idee was ich tun könnte?

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import pickle


class Fenster(QWidget):
    def __init__(self):
        super().__init__()
        self.initMe()

    def initMe(self):
        w = QPushButton("Check Me" ,self)
        w.setCheckable(True)
        w.clicked[bool].connect(self.clicked)
        w.move(50,50)

        self.setGeometry(50,50,1000,500)
        self.setWindowTitle("Ordner")
        self.setWindowIcon(QIcon("logo.png"))
        self.show()

    def clicked(self):
        print("Clicked")

app = QApplication(sys.argv)
w = Fenster()
sys.exit(app.exec_())
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Jetzt sehe ich in dem Code gar kein pickle und auch die Fehlermeldung, die Du bekommst, hast Du nicht verraten.
Prinzipiell kann man GUI-Elemente nicht pickeln, aber natürlich den Zustand. Dafür eigenen sich andere Formate aber auch besser.
Ein Fenster sollte sich nicht selbst anzeigen. Die Methode initMe ist eigentlich auch überflüssig. Statt exec_ benutzt man heutzutage exec.

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
from PyQt5.QtGui import QIcon

class Fenster(QMainWindow):
    def __init__(self):
        super().__init__()
        button = QPushButton("Check Me" ,self)
        button.setCheckable(True)
        button.clicked.connect(self.clicked)
        button.move(50,50)

        self.setGeometry(50,50,1000,500)
        self.setWindowTitle("Ordner")
        self.setWindowIcon(QIcon("logo.png"))

    def clicked(self):
        print("Clicked")

def main():
    app = QApplication(sys.argv)
    window = Fenster()
    window.show()
    sys.exit(app.exec())

if __name__ == "__main__":
    main()
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Falls das tatsächlich nur für die Anwendung sein soll, und nicht von anderen Programmen als Datei verarbeitbar sein muss, hat Qt auch `QSettings` für persistente Einstellungen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten