簡體   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