qstackedwidget 예제

크기 정책의 수평 및 수직 구성 요소 외에도 QSizePolicy 클래스는 가로 및 세로 늘이기 계수를 저장합니다. 이러한 스트레치 계수는 양식이 확장될 때 서로 다른 하위 위젯이 서로 다른 속도로 증가해야 함을 나타내는 데 사용할 수 있습니다. 예를 들어 QTextEdit 위에 QTreeWidget이 있고 QTextEdit이 QTreeWidget보다 두 배 높이가 이면 QTextEdit의 수직 스트레치 계수를 2로 설정하고 QTreeWidget의 수직 스트레치 계수를 1로 설정할 수 있습니다. 양식에서 자식 위젯의 레이아웃을 관리하는 세 가지 기본 방법은 절대 위치 지정, 수동 레이아웃 및 레이아웃 관리자입니다. 그림 6.1에 표시된 파일 찾기 대화 상자를 예로 사용하여 이러한 각 방법을 차례로 살펴보겠습니다. 그림 6.4에서는 “일부 텍스트”를 예로 들어 있는 QLabel을 사용하여 다양한 크기 정책의 의미를 요약합니다. 레이아웃 관리를 수행하는 다른 클래스에는 QSplitter, QScrollArea, QMainWindow 및 QMdiArea가 있습니다. 이러한 모든 클래스는 사용자가 조작할 수 있는 유연한 레이아웃을 제공합니다. 예를 들어 QSplitter는 사용자가 드래그하여 위젯 크기를 조정할 수 있는 분할 막대를 제공하며 QMdiArea는 응용 프로그램의 기본 창 내에서 동시에 많은 문서를 표시하는 수단인 MDI(다중 문서 인터페이스)에 대한 지원을 제공합니다.

레이아웃 클래스의 대안으로 사용되는 경우가 많기 때문에 이 장에서다룹니다. 매개 변수는 새 위젯이 없는 경우 또는 -1(예: QStackedWidget에 위젯이 없는 경우) -1을 보유합니다. 지금까지 제시 된 예제에서, 우리는 단순히 레이아웃에 위젯을 넣어 여분의 공간을 소비하는 스페이서 항목 (뻗어)를 사용했다. 경우에 따라 레이아웃을 원하는 방식으로 정확하게 보이게 하기에는 충분하지 않습니다. 이러한 상황에서는 배치되는 위젯의 크기 정책과 크기 힌트를 변경하여 레이아웃을 조정할 수 있습니다. QStackedWidget은 사용자가 페이지를 전환할 수 있는 본질적인 수단을 제공하지 않습니다. 이 작업은 일반적으로 QStackedWidget 페이지의 제목을 저장하는 QComboBox 또는 QListWidget을 통해 수행됩니다. 예: 현재 인덱스보다 작거나 동일한 인덱스에 새 위젯을 삽입하면 현재 인덱스가 증가하지만 현재 위젯은 유지됩니다. . 레이아웃은 하나의 QHBoxLayout, 하나의 QGridLayout 및 하나의 QVBoxLayout에 의해 처리됩니다. 왼쪽의 QGridLayout과 오른쪽의 QVBoxLayout은 외부 QHBoxLayout에 나란히 배치됩니다.

대화 상자 주위의 여백과 자식 위젯 간의 간격은 현재 위젯 스타일을 기반으로 기본값으로 설정됩니다. QLayout::set콘텐츠Margins() 및 QLayout:setSpacing()을 사용하여 변경할 수 있습니다.

Comments are closed.