2016-07-27 5 views
1

У меня есть основное приложение QWindow, где, когда я нажимаю QPushButton, появляется новое дочернее окно (QWidget). Есть два способа выхода из окна QWidget:Удаление QWidget при закрытии

  1. Нажмите Х в верхнем правом углу или
  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) 

Ваша кнопка «Finished», то есть только для вызова self.close() (что эквивалентно нажатию на заголовок окна рядом кнопка).

Смежные вопросы