私はの中に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
は、ウィジェットの階層の1つのレベルにウィジェットサイズをレイアウトします。高さの等しいサブウィジェットを作成するにはどうしたらいいですか?
3サブウィジェット対2つのサブウィジェット
ストレッチ3と2を設定するには私の最初の戦略:
をしかし、私は、スクロールバーを追加しました:
私の5つのウィジェットの高さは37,37,37,28,28 ...と同じです。問題はそれです
QDockWidgetのヘッダーの高さとマージン* 2と、サブアイテムとスクロールバーの間隔を追加する必要がありますか? – k06a
私の推測はそうです、そうすべきです。 :)しかし、それをしないで試して、それが動作するかどうかを確認してください。 – Anthony
2日前に私はこの方法を試しました。失敗。私は明日もう一度お試しになります。そして私はchildWidgetMinimumHeightに問題があります - 手動でウィジェット全体のサイズを変更したいのですが... – k06a