Qt
hide(), close() 차이
s코딩초보s
2020. 1. 28. 23:54
■ hide()
show() 함수가 isVisiable Flag를 true로 하여 시각적으로 GUI를 보여주는 것과 달리,
hide() 함수는 단순히 isVisiable Flag를 false로 하여 시각적으로 숨기는 기능을 합니다.
다시 사용하거나 나타나게 할 수 있습니다.
■ close()
close() 함수는 Widget을 감추는 것이지 메모리에서 삭제하는 것은 아닙니다.
아무런 설정없는 Default 상태에서 close()를 사용한다면 hide()를 호출하는 것과 같습니다.
하지만 QWidget::setAttribute(Qt::WA_DeleteOnClose) 옵션
혹은 deleteLater() 함수를 사용한다면 해당 객체가 사용되지 않을 시점에 메모리에서 삭제됩니다.
=> 프로그램 런타임 중에 해당 위젯을 delete로 삭제하는 것보다는 close() 호출 후
옵션을 이용하여 다음 이벤트 루프에서 삭제하는 것이 바람직합니다.