Erstelltest Fenster im neuen code weiter bearbeiten

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Mesut_Barut12
User
Beiträge: 4
Registriert: Dienstag 14. Dezember 2021, 17:51

Schönen Guten Abend,

Ich habe in einer Python Datei eine Anwendung Programmiert und jetzt möchte Ich es von einer andere Datei aufrufen und es weiter bearbeiten. Das aufrufen habe Ich hinbekomme jedoch wenn Ich es weiter bearbeiten will funktioniert es irgendwie nicht. Ich hoffe es kann mir hier weiter geholfen werden

Code: Alles auswählen

from Hauptfenster import Hauptfenster, Ui_Hauptfenster, QtWidgets, sys


class Test(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui_hauptfenster = Ui_Hauptfenster()
        self.ui_hauptfenster.setupUi(Hauptfenster())
        #einnahme_bestaetigen ist ein button
        self.ui_hauptfenster.einnahme_bestaetigen.clicked.connect(self.mausklick_input)
    def mausklick_input(self):
        print("geklickt")



app = QtWidgets.QApplication(sys.argv)
hauptfenster = Hauptfenster()
hauptfenster.show()
sys.exit(app.exec_())





Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Mesut_Barut12: Was ist denn da jetzt die konkrete Frage? Was passiert? Was hättest Du stattdessen erwartet? Falls es eine Fehlermeldung gibt, wie lautet die?

Was macht die `Test`-Klasse da, die nirgends verwendet wird?

Und falls da irgendein beteiligtes Modul generierter Quelltext sein sollte: das macht man eigentlich nicht, sondern lädt die *.ui-Datei zur Laufzeit des Programms.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Mesut_Barut12
User
Beiträge: 4
Registriert: Dienstag 14. Dezember 2021, 17:51

Die Test klasse soll wenn der Button "bestätigen" geklickt wird eine einfache print nachricht ausgeben.

Der button "bestätigen" ist in der Hauptklasse definiert den kann Ich aufrufen und der code funktiont auch ganz normal. Aber wenn Ich von außen von der klasse test etwas ändern möchte passiert nichts.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Mesut_Barut12: Wieso sollte denn mit dieser Test-Klasse denn irgendetwas passieren? Die wird nirgends verwendet.

Und solltest Du dann tatsächlich mal ein Exemplar davon erstellen, passieren in der `__init__()` komische, falsche Sachen.

Wir wissen ja nicht wie `Hauptfenster` aussieht, aber wenn das ”normal” aussieht, frage ich mich auch was denn `Test` soll? Warum *noch* eine Klasse?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Mesut_Barut12
User
Beiträge: 4
Registriert: Dienstag 14. Dezember 2021, 17:51

Du meinst also die test klasse wird garnicht ausgeführt? Ja stimmt habe Ich wohn übersehen dann kann ja garnix passieren. Ich versuchs mal mit aufrufen der klasse

Update:
Ich habe die Test Klasse aufgerufen und es passiert einfach mal garnichts fehlermeldung gibt es auch nicht.

Code: Alles auswählen

from Hauptfenster import Hauptfenster, Ui_Hauptfenster, QtWidgets, sys


class Test(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui_hauptfenster = Ui_Hauptfenster()
        self.ui_hauptfenster.setupUi(Hauptfenster())
        #einnahme_bestaetigen ist ein button
        self.ui_hauptfenster.einnahme_bestaetigen.clicked.connect(self.mausklick_input)
    def mausklick_input(self):
        print("geklickt")
#Nachdem Aufrufen der Test Klasse passiert einfach garnichts
Test()
app = QtWidgets.QApplication(sys.argv)
hauptfenster = Hauptfenster()
hauptfenster.show()
sys.exit(app.exec_())




Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Mesut_Barut12: Das kann ich mir fast nicht vorstellen das da keine Meldung kommt das man keine Qt-Fenster *vor* dem `QApplication`-Objekt erstellen darf. Andererseits wissen wir aber auch nicht was da in dem `Hauptfenster`-Modul auf Modulebene so ausgeführt wird. Und ganz allgemein kannst Du halt auch nicht erwarten das irgendwas sinnvolles passiert wenn Du ein Objekt erstellst und damit dann einfach gar nichts machst. Das wird ja sofort wieder von der Speicherverwaltung zum Abschuss freigegeben. Und es wird auch nirgends angezeigt. Und wenn es angezeigt wird, dann enthält es nichts. Und es steht immer noch die Frage im Raum was diese Klasse überhaupt soll. Die macht so keinen Sinn.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten