Доброго времени суток.
Создал 2 окна в PyQt5. Подскажите как вызвать одну форму из другой по нажатию на клавишу?
from PyQt4 import QtCore, QtGui import PyQt4.uic import sys class MW(QtGui.QWidget): def __init__(self, parent = None): super().__init__(parent) self.btn = QtGui.QPushButton('Click', self) self.btn.clicked.connect(self.onButton) self.show() def onButton(self): self.secondWindow = PyQt4.uic.loadUi('test001.ui') self.secondWindow.show() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = MW() sys.exit(app.exec())
rickну дык или закрыть его . или убрать на него все ссылки. Любой обьект храниться в памяти до тех пор пока на него ссылаеться хотябы одна переменная.
а как вот открыть новое окно, чтобы старое само закрылось.
from PyQt4 import QtCore, QtGui import PyQt4.uic import sys class MW(QtGui.QWidget): def __init__(self,counter, parent = None): super().__init__(parent) self.setWindowTitle('Main window {}'.format(counter)) self.btn = QtGui.QPushButton('Next sec window', self) self.resize(200,60) self.show() class SW(QtGui.QWidget): def __init__(self, counter, parent = None): super().__init__(parent) self.setWindowTitle('Second window {}'.format(counter)) self.btn = QtGui.QPushButton('Next main window', self) self.resize(200,60) self.show() class MyProgram: def __init__(self): self.counter = 0 self.mainWindow() def secWindow(self): self.window = SW(self.counter) self.window.btn.clicked.connect(self.mainWindow) self.counter += 1 def mainWindow(self): self.window = MW(self.counter) self.window.btn.clicked.connect(self.secWindow) self.counter += 1 if __name__ == '__main__': app = QtGui.QApplication(sys.argv) mainProg = MyProgram() sys.exit(app.exec())