close() funktion nur einmal abrufbar ?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Kolbon
User
Beiträge: 1
Registriert: Dienstag 25. Oktober 2022, 17:29

Hallo in die Runde,

ich wollte über einen Button eine neues Window öffnen und gleichzeitig das alte Window schließen. über .close() funktioniert das ganze nur ein einziges mal. Beim Wechsel zurück in ebendieses funktioniert es nicht.
Das ganze soll Quasi ein Menü über Buttons Darstellen über das man in den Fenstern hin und her wechseln kann.

ich rufe das Fenster über eine Main Datei auf

Code: Alles auswählen

from PySide6.QtWidgets import *  # PySide6 muss instaliert werden
from Gui1.profil_window import Ui_MainWindow  # localer Pfad

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        self.setup(self)
        
app = QApplication()
frm_main = MainWindow()
frm_main.show()
app.exec()
in der Profil_window sind beide Windows enthalten und die verschiedenen Fenster öffnen und schließe ich über folgende Funktion

Code: Alles auswählen

    def open_second_window(self): # Funktion zum Öffnen des zweiten Fensters und Schließen des profil_windows
        self.window=QtWidgets.QMainWindow()
        self.ui=Ui_SecondWindow()
        self.ui.setup(self.window) # zweites Fenster wird eingerichtet
        self.window.show()
        self.close() # profil_window wird geschlossen


Wie gesagt Funktioniert das ganze nur einmal beim ersten wechsel in das zweite fenster. Danach kommt der Fehler
'Ui_SecondWindow' object has no attribute 'close'

Wenn noch mehr Code benötigt wird kann ich das auch noch gerne nachreichen.

Vielen Dank schonmal und einen Schönen Abend
Adrian
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Du scheinst zu versuchen auf einem generierten UI-Objekt die close-Methode aufzurufen, das existiert aber nur bei den QWindows-Klassen.
UI-Dateien sollte man sowieso nicht in Python-Code umwandeln, sondern per UiLoader direkt laden.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Kolbon: Fenster die sich abwechselnd öffnen und schliessen klingt IMHO nicht gut. Da muss man dann ja erst einmal immer suchen wo die Fensterverwaltung das andere Fenster geöffnet hat. Was ist denn der Grund dafür zwei Fenster auf diese Weise zu handhaben?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten