[완료] Qt QScrollArea에서 widget의 크기를 자동 조절하는데에 대한 질문입니다.
글쓴이: song9063 / 작성시간: 토, 2008/09/06 - 12:33오후
안녕하세요?
QScrollArea에 대한 질문입니다.
QVBoxLayout으로 묶여진 여러개의 widget들을 포함하는 workWidget을
스크롤바를 이용하여 나타낼려고 QScrollArea를 사용했습니다.
그런데 workWidget이 포함하고 있는 widget들의 크기가 자동으로 화면 크기에 맞게 줄어듭니다.
작성한 코드는 아래와 같습니다.
QScrollArea내에서 widget들의 원본 크기로 이용할려면
setSizePolicy()를 어떻게 설정해야 할지 질문드립니다.
widget들은 수직방향으로 여러개가 정렬되어져 있고
한 화면에 전부 표시 되는 것을 원하지 않으며 오직 스크롤바를 통하여
나타낼려고합니다.
scrollArea = new QScrollArea; scrollArea->setBackgroundRole(QPalette::Dark); scrollArea->setWidgetResizable(true); scrollArea->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Ignored); workWidget = new SNCWorkWidget(profileWidget, this); scrollArea->setWidget(workWidget);
Forums:
scrollArea->setWidgetResizabl
scrollArea->setWidgetResizable(true);
이것을 true로 하고 계신데, 그러면 scrollArea가 알아서 내부 위젯의 크기를 조절하게 됩니다. false(디폴트값)으로 하셔야 합니다.
scrollArea->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Ignored);
scrollArea자체의 size policy는 내부위젯의 크기와 상관이 없습니다.
내부 위젯(workWidget)의 size policy를 조절해야합니다.
답변 감사드립니다.
지적하신 것과 같이 내부 위젯의 policy를 수정하여 해결했습니다.
답변 감사드립니다.
안녕하세요?
Policy를 수정하여..
Policy를 수정하여.. 내부위젯의 크기가 변경되는 점은 해결을 했습니다.
첨부 그림처럼 여러개의 QTableWidget들이 QVBoxLayout으로 엮여져있습니다.
setSpacing(0), setMargin(0) 이렇게 0으로 줬는데도 첨부처럼 위젯간의 간격이 벌어지네요.
layout에 관해서는 아직 이해가 잘 가지않아 헤메고 있네요..
제가 가지고 있는 책에서도 아주 자세히 나와있는 것 같지도 않고요.. 제가 이해력이 부족한건지.;;
아래에서(적색 표시 부분) 위젯 간의 간격을 최대한 줄이려고 합니다.
어떤 방식으로 적용하는지 한 번더 답변을 부탁 드려봅니다.
안녕하세요?
setSpacing(0)이랑
setSpacing(0)이랑 setMargin(0)으로 될텐데요...-_-;;
샘플코드
실행 결과(첨부파일)
해결 하셨는지 모르겠지만...
해결 하셨는지 모르겠지만...
layoutSpacing 값을 조절해보세요. 디폴트값이 -1이던걸로 기억됩니다.
0으로값을 바꾸고 나면 딱 붙던걸로 기억되네요.
=======================================
아프다...
=======================================
.
댓글 달기