2016-07-27 100 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()(即相當於點擊標題欄關閉按鈕)。