1. Widget 이란?
Widget은 QT에서 GUI를 구성하는 가장 기본적인 컨트롤 유닛을 말한다. 모든 Widget은 parent-child 계층 관계를 갖게되어 있으며, parent widget에 속하지 않은 widget은 window라고 한다. Qt의 모든 widget은 화면에 어떻게 표시 될지 사용자와 어떤 상호작용을 할지에 대한 기능들을 제공한다.
2. Window 의 역할
Window는 데스크탑에서 task bar에 application으로 등록되어 관리된다. 하지만 앞서 말했듯이 parent가 없는 widget은 모두 window가 된다고 했다. 그렇기에 모든 window가 taskbar에 나타나는게 아니라 applicaiton 에 하나의 window만을 taskbar에 등록되도록 primary window 와 secondary windows로 나뉘어 secondary windows는 primary window에 속해서 관리된다.
여기서 우리가 일반적으로 생각하는 window의 개념은 하나의 어플리케이션으로 메뉴바, 상태바, 툴바 등으로 구성된 화면을 생각하게 되는데 같은 용어로 쓰이다 보니 좀 헷갈리기도 하고 Qt Creator를 통해서 만드는 QMainWindow에서 말하는게 그 window인가 하면서 혼동이 온다.
지금 말하는 no parent widget = window의 개념을 확장하여 Creator에서 제공하는 GUI 기반 프로그램의 한 형태를 만들어준 것이 QMainWindow, QDialog 이다. QDialog 에 대한 이야기는 다음에 좀더 이야기하도록 하겠다.
3. Window 영역 구성
Window는 frame영역과 실제 client영역으로 나뉘고 각각의 영역에 대한 정보를 얻는 것은 각각의 함수를 이용하면 된다.
참고 : Window and Dialog Widgets | Qt Widgets 6.2.2