Как на Python(PySide6) Скрыть основное окно и отобразить новое?

Делаю приложение, и уже второй день не могу найти информации о том, как скрыть основное окно и показать новое. При запуске программы открывается сразу два окна. И вообще, возможно ли это?

from PySide6 import QtCore, QtGui, QtWidgets
from PySide6.QtWidgets import QApplication, QMainWindow
from Main_UI import Ui_MainWindow
from connection import Data
from Test_Window import Ui_Dialog

class Testirovanie(QMainWindow):
    def __init__(self):
        super(Testirovanie, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.conn = Data()

    def testirovanie_window(self):
        self.new_window = QtWidgets.QDialog()
        self.ui_window = Ui_Dialog()
        self.ui_window.setupUi(self.new_window)
        self.new_window.show()
        

    def add_new_transaction(self):
        name = self.ui.lineEdit.text()
        famka = self.ui.lineEdit_2.text()
        gruppa = self.ui.lineEdit_3.text()

        self.conn.add_new_transcation(name, famka, gruppa)



if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Testirovanie()
    window.ui.pushButton.clicked.connect(window.testirovanie_window)
    app.quit()
    window.add_new_transaction()
    conn2 = Data()
    window.show()
    sys.exit(app.exec())

Ответы (1 шт):

Автор решения: Lotlt

Спустя некоторое время Я смог решить свой вопрос. Сейчас я приложу весь свой новый код, и объясню что я изменил и добавил, для того чтобы это работало.

import  sys
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton, QDialog
from Main_UI import Ui_MainWindow
from connection import Data
from Test_Window import Ui_Dialog

class Testirovanie(QMainWindow):
    def __init__(self):
        super(Testirovanie, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.open_second_window)
        self.conn = Data()
        self.second_window = None
    def open_second_window(self):
        self.close()
        self.second_window = testirovanie_window()
        self.second_window.show()

class testirovanie_window(QDialog):
    def __init__(self):
        super(testirovanie_window, self).__init__()
        self.ui_window = Ui_Dialog()
        self.ui_window.setupUi(self)
      # self.new_window.show()


    def add_new_transaction(self):
        name = self.ui.lineEdit.text()
        famka = self.ui.lineEdit_2.text()
        gruppa = self.ui.lineEdit_3.text()
        self.conn.add_new_transcation(name, famka, gruppa)



if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Testirovanie()
    window.show()
    conn2 = Data()
    sys.exit(app.exec())

Функцию def testirovanie_window я превратил в класс, и прописал ему свойства. В основном классе class Testirovanie, я объявил функцию отвечающую за открытие второго окна, а в ней уже указал то, что основное должно закрыться, а новое открыться. Ну и так же для кнопки там вот можно увидеть тоже прописал, что при нажатии на кнопку оно должно использовать эту функцию

→ Ссылка