「アロマテラピースクール セリスト」AEAJ総合資格認定校として充実した内容を提供。2000名を超える卒業生を送り出した実績あるアロマスクールです

cellist

セリスト日記@吉祥寺

qt layout 예제

2019.08.03

자신의 레이아웃 클래스를 작성하려면 다음을 정의해야 합니다: createGridGroupBox() 함수에서 그리드에 위젯을 배치하는 QGridLayout을 사용합니다. 그것은 (부모 레이아웃 또는 부모 위젯에 의해) 사용할 수있는 공간을 소요, 행과 열로 분할하고, 올바른 셀에 관리 각 위젯을 넣습니다. 위젯은 레이아웃을 다시 계산해야 할 때 QEvent::LayoutRequest 형식의 이벤트를 가져옵니다. QWidget::event()를 다시 구현하여 QEvent::LayoutRequest 이벤트를 처리합니다. 레이블 위젯에서 리치 텍스트를 사용하면 상위 위젯의 레이아웃에 몇 가지 문제가 발생할 수 있습니다. 레이블이 줄 바꿈될 때 Qt의 레이아웃 관리자가 리치 텍스트를 처리하는 방식으로 인해 문제가 발생합니다. 단추를 만들고 크기 정책을 설정합니다. 자식 위젯은 레이아웃 관리자가 관리합니다. 기본적으로 단추는 가로로 확장되고 고정된 크기가 세로로 표시됩니다. 변경하려는 경우 새 크기 정책을 설정합니다.

우리의 경우, 버튼은 양방향으로 확장 할 수 있습니다. addStretch() 메서드를 호출하여 빈 확장 가능한 공간을 세로 상자에 넣습니다. 그런 다음 세로 상자 레이아웃에 가로 상자 레이아웃을 추가합니다. 가로 그룹 상자를 만들 때 QHBoxLayout을 내부 레이아웃으로 사용합니다. 그룹 상자에 넣을 단추를 만들고 레이아웃에 추가하고 그룹 상자에 레이아웃을 설치합니다. 다음 예제에서는 창의 클라이언트 영역에 두 개의 단추를 표시합니다. 창의 오른쪽 하단 모서리에 배치됩니다. 이 예제에서는 하나의 수직 레이아웃 관리자가 있습니다. 우리는 그것에 5 개의 버튼을 넣었습니다.

모든 버튼을 양방향으로 확장할 수 있습니다. 그런 다음 레이아웃을 반복하는 두 가지 함수인 itemAt() 및 takeAt()를 정의합니다. 이러한 함수는 위젯 삭제를 처리하기 위해 레이아웃 시스템에서 내부적으로 사용됩니다. 또한 응용 프로그램 프로그래머도 사용할 수 있습니다. 이 장의 다음 예제에서는 QGridLayout 관리자를 사용 하 여 더 복잡 한 창을 만듭니다. 우리는 레이아웃의 끝에 위젯을 추가하려면 QBoxLayout::addWidget() 기능을 사용합니다. 각 위젯은 최소 크기와 최대 크기를 얻을 것이다. addWidget() 함수에서 스트레치 계수를 지정할 수 있으며 이러한 스트레치 계수에 따라 초과 공간이 공유됩니다. 지정하지 않으면 위젯의 스트레치 계수가 0입니다. Qt 레이아웃 시스템은 자동으로 사용 가능한 공간을 잘 활용할 수 있도록 위젯 내에서 자식 위젯을 정렬하는 간단하고 강력한 방법을 제공합니다. 우리는 빈 프로젝트를 만들고 6 푸시 버튼을 만들 것입니다. 그런 다음 가로 레이아웃이있는 3 개의 단추와 세로 레이아웃의 다른 3 개의 단추를 정렬합니다.

두 레이아웃은 가장 바깥쪽 레이아웃에 추가된 다음 setLayout()를 사용하여 외부 레이아웃을 위젯으로 전달합니다. 우리는 두 개의 상자 레이아웃 관리자를 만듭니다: 하나의 수직 및 하나의 수평 상자 레이아웃 관리자. 경우에 따라 레이아웃이 위젯에 추가될 때 관련이 있습니다. QDockWidget 또는 QScrollArea(QDockWidget::setWidget() 및 QScrollArea::setWidget()의 위젯을 설정할 때 레이아웃이 위젯에 이미 설정되어 있어야 합니다. 그렇지 않으면 위젯이 표시되지 않습니다. addItem()은 레이아웃 항목에 대한 기본 배치 전략을 구현합니다. 이 함수를 구현해야 합니다. 레이아웃을 부모로 사용하는 QLayout 생성자에서 QLayout::add()에서 사용됩니다.

레이아웃에 매개 변수가 필요한 고급 배치 옵션이 있는 경우 QGridLayout::addItem(), QGridLayout::addWidget() 및 QGridLayout::addLayout()의 오버로드에 걸친 행 및 열과 같은 추가 액세스 기능을 제공해야 합니다. QGridLayout::addWidget()은 셀이 아걸쳐 줄 행과 열수를 지정하는 인수를 추가할 수도 있습니다.

Categories

  • カテゴリーなし

Keywords