как не завершить программу, когда пользователь вводит Ok на QMessageox в PyQt5? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть Mainwindow и Messagebox. При нажатии Ok в окне сообщения, я хочу закрыть окно сообщения и скрыть главное окно. Публикация, что я хочу запустить главное окно на основе определенных условий. Но эта строка self.msg.exec_ () или self.msg.show (), завершая программу с помощью Process, завершила с кодом завершения 0. Я не хочу завершать Mainwindow, просто хочу скрыть его и запустить снова.

из PyQt5.QtWidgets import * из PyQt5.QtCore import Qt import sys

класс Main (QMainWindow):

def __init__(self):
    super().__init__()
    self.initUI()

def initUI(self):
    self.centralwidget = QWidget(self)

    self.Close = QPushButton('Close', self)
    self.Close.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
    self.Close.setStyleSheet(
        'QPushButton {background-color: Gray;}')
    self.Close.clicked.connect(lambda: self.popup_close())
    vbox = QVBoxLayout()
    vbox.addWidget(self.Close)
    self.centralwidget.setLayout(vbox)
    self.setCentralWidget(self.centralwidget)
    self.show()

def popup_close(self):
    self.msg = QMessageBox()
    self.msg.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.WindowTitleHint)
    self.msg.setIcon(QMessageBox.Critical)

    self.msg.setText("Warning.")
    self.msg.setStandardButtons(QMessageBox.Ok)
    if self.msg == QMessageBox.Ok:
        self.msg.accept()
        self.hide()    #hide the main window on closing the warning popup
    self.msg.show()
# self.msg.exec_()
#resp = time_api.api_calls.isSubmitted(self)
#if resp['isLocked'] == True and resp['submitted'] == True:
#   Main()     


class Starter():
   def start(self):
       app = QApplication(sys.argv)
       Main()
       sys.exit(app.exec_())


if __name__ == "__main__":
   s = Starter()
   s.start()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...