Найти - Пользователи
Полная версия: Вызов объектов
Начало » GUI » Вызов объектов
1
rick
Доброго времени суток.
Создал 2 окна в PyQt5. Подскажите как вызвать одну форму из другой по нажатию на клавишу?
PEHDOM
 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
PEHDOM
Ругается, в PyQt5 иначе это делается
PEHDOM
Точно также там все, только виджеты там не в QtGui , а в QtWidgets, соовтетвенно замени везде QtGui на QtWidgets..
rick
PEHDOM
Спасибо, разобрался)
Подскажи пожалуйста еще вот что, вот как открыть окно по нажатию на клавишу я разобрался, а как вот открыть новое окно, чтобы старое само закрылось.
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())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB