2016-07-27 101 views
1

我有我的主应用程序QWindow其中,当我按QPushButton时弹出一个新的子窗口(一个QWidget)。有退出QWidget窗口的方法有两种:关闭时删除QWidget

  1. 点击右上角的X,或
  2. 单击“完成” QPushButton我在QWidget窗口。

我想确保,当使用任何一种方法退出窗口时,QWidget被删除。我相信在第二种情况下,我可以通过将self.deleteLater()添加到单击“完成QPushButton”时调用的函数来确保这一点,但我很难在第一种情况下看到如何执行此操作。

回答

1

您可以在窗口小部件设置的属性做到这一点:然后

class Widget(QtGui.QWidget) 
    def __init__(self, parent=None) 
     super(Widget, self).__init__(parent) 
     self.setAttribute(QtCore.Qt.WA_DeleteOnClose) 

你的“完成”按钮,只需要调用self.close()(即相当于点击标题栏关闭按钮)。