728x90
QSplitter를 사용하면 화면에 배치된 UI Component의 크기를 마우스 드래그로 동적으로 조절할 수 있습니다.
위와 같은 ui가 있을 때 TabWidget 안에 Group Box 간, 그리고 TabWidget과 하단의 Text Browser 간에 사이즈를 조절하고 싶을 때 아래와 같이 코드를 작성합니다.
#include <QSplitter>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSplitter* sp = new QSplitter();
sp->addWidget(ui->groupBox);
sp->addWidget(ui->groupBox_2);
ui->horizontalLayout->addWidget(sp);
QSplitter* sp2 = new QSplitter();
sp2->addWidget(ui->tabWidget);
sp2->addWidget(ui->textBrowser);
sp2->setOrientation(Qt::Vertical);
ui->gridLayout->addWidget(sp2);
}
QSplitter를 생성하고 조절하고자 하는 위젯을 AddWidget을 통해 추가 후 Layout에 추가해주면 됩니다.
다음으로 추가할 수 있는 속성들에 대한 함수입니다.
- setOrientation : Splitter의 방향을 지정할 수 있습니다.
- setChildrenCollapsible : Widget의 크기를 최소한 이상으로 줄였을 때 숨길 것인지 설정할 수 있습니다.
- setOpaqueResize : false로 설정하면 드래그가 종료 될 때 사이즈를 조절하게 됩니다.
- saveState / restoreState : splitter의 size를 QSettings를 통해 저장할 수 있습니다.
728x90
'Programming > Qt' 카테고리의 다른 글
[Qt] TableWidget 사용하기 (4) | 2023.11.21 |
---|---|
[Qt] 단일 SLOT 함수로 여러 QObject의 SIGNAL 대응하기 (0) | 2023.10.25 |
[Qt] Qt Console Application 실행 시 console 창 안뜨는 경우 (1) | 2023.05.19 |
[Qt] Qt Creator 10.0 Qt Quick Application 생성 불가 해결 (3) | 2023.04.29 |
[Qt] Static Build (exe 파일 단독 실행) (0) | 2023.04.20 |