我在一個QWidget
內有一些QDockWidget
s(不浮動,只能關閉)。 我在每個QDockWidget
裏都有一些小部件 - 它們的高度應該相等。 這些內部小部件可以通過上下文菜單隱藏。如何讓Qt subwidget高度相等?
我的內部小工具應該有相同的高度。我做這樣說:
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);
}
}
一切工作正常,直到我加入一些常量元素,每個QDockWidget
:一些水平滾動條和一些唱片公司......現在我內心的部件具有不同的尺寸。但我有必要將他們的高度大致相等。
QLayout
勾畫出一個小部件的層次結構的一個級別部件尺寸。我怎樣才能讓高度相等的子裝置?
3 subwidgets對2個subwidgets
我的第一個策略設置拉伸部3和2:
但是,當我增加了滾動條:
我的5個小工具的高度等於37,37,37,28,28 ...那就是問題
我是否也應該添加QDockWidget的標題高度和邊距* 2以及子項和滾動條之間的間距? – k06a 2012-04-23 19:01:29
我的猜測是肯定的,你應該。 :)但嘗試它沒有這樣做,看看它是否工作。 – Anthony 2012-04-23 19:04:08
兩天前我試過這種方式。沒有成功。我明天再試一次。我有問題與childWidgetMinimumHeight - 我想調整整個小部件手動... – k06a 2012-04-23 19:48:54