Форум сайта python.su
Доброго времени суток.
Создал 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())
[code python][/code]
Офлайн
PEHDOM
Ругается, в PyQt5 иначе это делается
Отредактировано rick (Июнь 12, 2017 15:33:37)
Офлайн
Точно также там все, только виджеты там не в QtGui , а в QtWidgets, соовтетвенно замени везде QtGui на QtWidgets..
[code python][/code]
Офлайн
PEHDOM
Спасибо, разобрался)
Подскажи пожалуйста еще вот что, вот как открыть окно по нажатию на клавишу я разобрался, а как вот открыть новое окно, чтобы старое само закрылось.
Офлайн
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())
[code python][/code]
Офлайн