Main GUI закрывается при запуске дочернего элемента GUI. Почему? - PullRequest
0 голосов
/ 22 января 2020

Привет всем. Я новичок в python, и я создал скрипт (a) для создания специфической c структуры папок на основе нескольких параметров. Когда этот скрипт выполняется, он запускает основные GUI (b), и как только указанные основные условия c выполняются в основных GUI, дочерний элемент GUI (c) запускается одним нажатием кнопки. Теперь основной GUI (b) и дочерний GUI (c) были созданы с помощью конструктора PyQT, и они были импортированы в скрипт (a).

Я попытался установить GUI для '... show ()', а также попытался установить основной GUI (a) как родительский и дочерний GUI (c) как дочерний, используя примеры из других постов здесь, но безрезультатно. Может быть, я просто делаю это неправильно.

После отладки скрипта (a) в Pycharm, похоже, он запускает дочерний элемент GUI (c) как ' main 'и канав / закрывает основной GUI (б). Я разместил начальную и конечную части кода для всех 3 (a, b, c). Пожалуйста, кто-нибудь может помочь

    ------------------ # Beginning of script(a) # ---------------------
    class mywindow(QtWidgets.QMainWindow):  
    def __init__(self, parent=None):
        super(mywindow, self).__init__(parent)

        self.ui = Ui_MainWindow()  # This launches the main GUI(b)
        self.ui.setupUi(self)

        self.ui2 = Ui_New_LabWindow() # This is to launch the child GUI(c)

    def __del__(self):
        self.ui = None
        self.ui2 = None

    ------------------ # end of script(a) # ---------------------
def main():
    app = QtWidgets.QApplication(sys.argv)
    application = mywindow()
    application.show()
    app.exec_()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

    ------------------ # beginning of main GUI(b) # ---------------------
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.show()
        MainWindow.setWindowModality(QtCore.Qt.WindowModal)
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(600, 508)
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        MainWindow.setFont(font)
        MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        MainWindow.setLayoutDirection(QtCore.Qt.RightToLeft)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

    ------------------ # end of main GUI(b) # ---------------------
    if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    app.exec_()
    sys.exit(app.exec_())

    ------------------ # beginning of child GUI(c) # ---------------------
    class Ui_NewLabWindow(object):
    def setupUi(self, NewLabWindow):
        NewLabWindow.setWindowModality(QtCore.Qt.WindowModal)
        NewLabWindow.setObjectName("NewLabWindow")
        NewLabWindow.resize(403, 433)
        self.centralwidget = QtWidgets.QWidget(NewLabWindow)
        self.centralwidget.setObjectName("centralwidget")

    ------------------ # end of child GUI(c) # ---------------------
    if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    NewLabWindow= QtWidgets.QMainWindow()
    ui = Ui_NewLabWindow()
    ui.setupUi(NewLabWindow)
    NewLabWindow.show()
    NewLabWindow.isModal()
    app.exec_()
    sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...