Форум сайта python.su
Помогите решить вопрос, уже 3 дня ищу решение
Есть Главная форма на ней кнопка, чтобы открыть второе окно с настройками и скрыть главную форму
Во втором окне есть 2 кнопки отмена и применить
соответственно они закрывают второе окно и открывают главное
но к сожалению при нажатии кнопки cancel во втором окне закрывается и главное и второе окно
import sys from form_main import * from form_day import * from PyQt5 import QtCore, QtGui, QtWidgets class FormMain(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) self.ui = Ui_form_main() self.ui.setupUi(self) self.ui.ButtonDay.clicked.connect(self.show_form_day) def show_form_day(self): self.form_day = FormDay(self) self.form_day.show() class FormDay(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) self.form_day = Ui_form_day() self.form_day.setupUi(self) #... настройки form_main.hide() if __name__=="__main__": app = QtWidgets.QApplication(sys.argv) form_main = FormMain() form_main.show() sys.exit(app.exec_())
from PyQt5 import QtCore, QtGui, QtWidgets class Ui_form_day(object): def setupUi(self, form_day): form_day.setObjectName("form_day") form_day.resize(1024, 600) self.centralwidget = QtWidgets.QWidget(form_day) self.ButtonCancel.setFont(font) self.ButtonCancel.setStyleSheet("") self.ButtonCancel.setObjectName("ButtonCancel") #.... self.ButtonCancel.clicked.connect(self.push_button_cancel) self.ButtonApply.clicked.connect(self.push_button_apply) def push_button_cancel(self): print('cancel') form_main.show() self.hide()
Офлайн
PyQT когда видит что нет ни одного видимого окна завершает работу.
Когда вы нажимаете кнопку “кенсл” второе окно закрывается, а первое еще не открыто(например сигнал не дошел еще или первое не успело отрисоваться) Нужно или запретить завершать работу при закрытии всех окон (за это овечает метод setQuitOnLastWindowClosed) но тогда нужно дополнительно прописывать выход из программы, при закрытии главного окна. Или не закрывать второе пока первое не отрисуеться.
вот этого:
form_main.hide() .... form_main.show() ...
[code python][/code]
Отредактировано PEHDOM (Янв. 15, 2019 11:20:41)
Офлайн
PEHDOM спасибо
я нашёл пример
http://www.cyberforum.ru/python-graphics/thread2182635.html
19.02.2018, 03:22
Офлайн