Programming/Qt
[Qt] QSplitter 사용하기
_SYPark
2023. 10. 25. 13:28
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