如何在PyQt

时间:2019-01-26 21:29:50

标签: python pyqt pyqt4 pyside

PyQt中的MessageBox无法访问父窗口...我尝试实现自定义messageBox。但是对我没有任何帮助。

我尝试使用QWidget,但是使用Qwidget,这些小部件像下面的图像一样放置在mainWindow上

widget in mainWindow

然后我实现了该对话框,它运行良好,但问题是打开对话框后我们还可以访问主窗口。我希望打开对话框后无法访问mainWindow。

class MainClass(QtGui.QDialog):
  def __init__(self, parent=None):
    super(MainClass, self).__init__(parent)
    self.setParent(parent)

    #widgets added below
    ...

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我不知道我是否正确理解了您的问题,但是您的问题是否仅仅是 如果您的对话框没有阻止输入到同一应用程序中其他可见窗口,则解决方案是setModal(True)。

您可以使用exec_而不是show来表达胚胎,也可以手动设置setModal。

class MainClass(QtGui.QDialog):
    def __init__(self, parent=None):
        super(MainClass, self).__init__(parent)
        self.setParent(parent)
        self.setModal(True)
        #widgets added below

这里有一个类似的问题:How to create a modal window in pyqt?