繁体   English   中英

PyQt5获取QErrorMessage来阻止Mainwindow

[英]PyQt5 get QErrorMessage to block Mainwindow

在PyQt5中,我至少可以追溯到4,如果QMessageBox以MainWindow为父级初始化,它将阻塞对MainWindow的任何输入,直到MessageBox被接受,关闭等。

但是,如果使用MainWindow作为父级初始化QErrorMessage,则不会发生此行为。 有没有一种方法可以将某种窗口参数传递给QErrorMessage,使其阻塞父窗口直到关闭它?

我意识到我可以使QMessageBox表现得像QErrorMessage一样。 我只想知道上述行为是否可能。

使用setWindowModality(QtCore.Qt.WindowModal)QErrorMessage设置为模式

from PyQt5 import QtCore, QtWidgets

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()

        emsg = QtWidgets.QErrorMessage(self)
        emsg.setWindowModality(QtCore.Qt.WindowModal)

        cwidget = QtWidgets.QWidget()
        layout = QtWidgets.QVBoxLayout(cwidget)
        lineedit = QtWidgets.QLineEdit()
        button = QtWidgets.QPushButton('Show message')
        button.clicked.connect(lambda: emsg.showMessage('Message: ' + lineedit.text()))
        layout.addWidget(lineedit)
        layout.addWidget(button)
        self.setCentralWidget(cwidget)


app = QtWidgets.QApplication([])
win = MainWindow()
win.show()
app.exec_()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM