Witam mam problem z kodem. Program ma otwierać drugie okno i chce podzielić to dwie klasy gdzie jedna odpowiada je jedno okno a druga za kolejne.
class FirstWindow(CheckWindow):
"""
Switching window1 (start window) to window2 (which is MainWindow).
"""
def __init__(self, window1):
self.setupUi(window1)
self.pushButton.clicked.connect(self.switchWindow)
self.pushButton_2.clicked.connect(self.selectFile)
def selectFile(self):
text = QFileDialog.getOpenFileName()
print(text)
if text[0]:
f = open(text[0], 'r')
with f:
data = f.read()
print(data)
def switchWindow(self):
self.window2 = QtWidgets.QMainWindow()
self.ui = MainWindow()
self.ui.setupUi(self.window2)
self.window2.show()
MainInterface(self.window2) # <---------------
class MainInterface(MainWindow):
"""
"""
def __init__(self, window2):
self.setupUi(window2)
self.pushButton_2.clicked.connect(self.test)
def test(self):
print("działa")
if __name__ == '__main__':
"""
Show window1 (start window).
"""
app = QtWidgets.QApplication(sys.argv)
window1 = QtWidgets.QMainWindow()
FirstWindow = FirstWindow(window1)
window1.show()
#window2 = QtWidgets.QMainWindow() # <-------------
#sec = MainInterface(window1) # <-------------
sys.exit(app.exec_())
problem w tym ze jeśli wywołam funkcje ze strzałką pierwszą to wyświetla się okno drugie ale nie działa test z drugiej funkcji. Natomiast jeśli użyje kolejnych dwóch strzałek to działa tylko że nie otwiera się pierwsze okno. Jeśli w 3 strzałce podstawie window2 to i tak jak z pierwszą strzałką nie działa test ale się wyświetla. Jakieś pomysły jak to rozwiązać?