Как на 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 шт):
Спустя некоторое время Я смог решить свой вопрос. Сейчас я приложу весь свой новый код, и объясню что я изменил и добавил, для того чтобы это работало.
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
, я объявил функцию отвечающую за открытие второго окна, а в ней уже указал то, что основное должно закрыться, а новое открыться. Ну и так же для кнопки там вот можно увидеть тоже прописал, что при нажатии на кнопку оно должно использовать эту функцию