Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 12, 2017 00:18:39

rick
Зарегистрирован: 2017-06-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов объектов

Доброго времени суток.
Создал 2 окна в PyQt5. Подскажите как вызвать одну форму из другой по нажатию на клавишу?



Находчивый питон проглотил двух разнополых кроликов.

Офлайн

#2 Июнь 12, 2017 10:36:53

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вызов объектов

 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]
Бериегите свое и чужое время.

Офлайн

#3 Июнь 12, 2017 15:33:06

rick
Зарегистрирован: 2017-06-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов объектов

PEHDOM
Ругается, в PyQt5 иначе это делается



Находчивый питон проглотил двух разнополых кроликов.

Отредактировано rick (Июнь 12, 2017 15:33:37)

Офлайн

#4 Июнь 12, 2017 16:24:59

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вызов объектов

Точно также там все, только виджеты там не в QtGui , а в QtWidgets, соовтетвенно замени везде QtGui на QtWidgets..



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Июнь 13, 2017 01:33:15

rick
Зарегистрирован: 2017-06-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов объектов

PEHDOM
Спасибо, разобрался)
Подскажи пожалуйста еще вот что, вот как открыть окно по нажатию на клавишу я разобрался, а как вот открыть новое окно, чтобы старое само закрылось.



Находчивый питон проглотил двух разнополых кроликов.

Офлайн

#6 Июнь 13, 2017 09:51:57

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вызов объектов

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]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version