Qt レイアウト 余白の処理

Qt レイアウトによる余白の処理

QtのLayoutはStyleSheet適応外ですが、デフォルトでは前後左右、約11pxの余白が入ります。 QMLDesignerだとプロパティ設定から余白を変える事が出来ますが、 フルスクラッチだとちょっと気づき難いかもしれません

QWidget *widget = new QWidget;
QHBoxLayout *layout = new QHBoxLayout;

widget->setLayout(layout);
widget->show();

この状態だと余白により思い通りなデザインにする事が出来ません。

デフォルトの状態

余白を消す

これはLayoutのMarginが邪魔をしているので、マージンをリセットしてあげる必要があります。

QWidget *widget = new QWidget;
QHBoxLayout *layout = new QHBoxLayout;

//margin reset
layout->setContentsMargins(0, 0, 0, 0);

widget->setLayout(layout);
widget->show();

setContentsMargins(Left, Top, right, bottom)はmarginを指定するメソッドです。 この他取得するContentsMargins()等もありますので間違えない様に。

marginreset

参考 : Qt Layout

コメント

このブログの人気の投稿

Qt ウィンドウのあれこれ

Qt setWindowFlagsについて