하나의 QWidget
안에 QDockWidget
(부동이 아니고 닫을 수 있음)이 있습니다. 각 QDockWidget
안에 일부 위젯이 있습니다. 높이가 같아야합니다. 내부 위젯은 컨텍스트 메뉴를 통해 숨길 수 있습니다.Qt 서브 위젯 높이를 어떻게 같습니까?
내 위젯의 높이가 동일해야합니다. 일부 수평 스크롤 일부 레이블 ... 이제 내 내부 위젯이 서로 다른 크기를 가지고 : 나는 각 QDockWidget
일부 CONST 요소를 추가 할 때까지
void MyDocksPanel::redistributeSpace()
{
QBoxLayout * lay = (QBoxLayout *)layout();
for (int i = 0; i < lay->count(); i++)
{
QWidget * dock = lay->itemAt(i)->widget();
if (dock == NULL)
continue;
int size = 0;
foreach(QWidget * subWidget, dock->findChildren<QWidget*>())
size += subWidget->isVisible() ? 1 : 0;
if (dock->isVisible() && (size == 0))
dock->hide();
lay->setStretch(i, size);
}
}
모두 잘 작동 : 나는이 방법을 수행. 그러나 나를 높이 평가할 필요가 있습니다.
QLayout
은 위젯의 계층 구조의 한 수준에서 위젯 크기를 배치합니다. 높이 단위의 위젯을 만들려면 어떻게해야합니까?
하지만, 내가 추가 한 스크롤 막대 :
3 subwidgets 대 2 subwidgets
나의 첫번째 전략은 뻗어 3과 2를 설정합니다
제 5 위젯하이츠는 37,37,37,28,28 같음 ... 그리고 문제를 이잖아하는
QDockWidget의 머리글 높이와 여백 * 2를 추가하고 하위 항목과 스크롤바 사이에 간격을 추가해야합니까? – k06a
내 생각 엔 그렇습니다. :) 그러나 그것을하지 않고 그것을 시도하고 그것이 작동하는지 확인하십시오. – Anthony
2 일 전에 나는이 방법을 시도했다. 성공하지 못했습니다. 나는 내일 다시 시도 할 것이다. 그리고 난 childWidgetMinimumHeight에 문제가 있습니다 - 수동으로 전체 위젯의 크기를 조정하고 싶습니다 ... – k06a