QTextEdit
左右の余白のあるをaに配置する方法はQVBoxLayout
?もちろん、を使用してQHBoxLayout
、QTextEdit
その水平レイアウトの間に間隔(addSpacing(40)
)を配置すると、水平レイアウトを垂直レイアウトに追加できますが、それを直接行う方法があるかどうかを知りたいと思います。
3 に答える
がある
void QLayout::setContentsMargins ( int left, int top, int right, int bottom );
しかし、これは全体の周りにマージンを設定します。QTextEdit
レイアウトだけにマージンが必要な場合は、QHBoxLayout
前述のアプローチを使用する必要があります。私はそれを回避するための他のトリックを知りません。
QTextEdit のマージンのみが必要で、QVerticalLayout の他の要素が必要ない場合は、そのために QT スタイルシートを使用できます。QTextEdit オブジェクトに名前を付けて (「myMarginsTextEdit」など)、スタイルを設定するだけです。
QTextEdit#myMarginsTextEdit
{
margin-left: 40px;
margin-right: 40px;
}
アプリケーションのスタイル設定に QT スタイルシートを使用していない場合でも、そのアイテムのスタイル設定にのみ使用できます。次のようにすることができます (QTextEdit 変数が "textEditItem" と呼ばれていると想像してください):
textEditItem.setStyleSheet("QTextEdit {margin-left:40px; margin-right:40px}");
もう 1 つのオプションは、垂直レイアウトでコンテンツ マージンを使用することですが、すべての要素に適用されます。
Qt Designerを使用しているのか、コードで手動でこれを行っているのかについては言及していません。
コード内:QLayoutクラスにはsetContentsMarginsプロパティがあり、これを使用して左右を好きなように設定できます。2つのフレーバーもあります。1つは別々の引数として左、上、右、下を取り、もう1つはQMarginsオブジェクトを取ります。
Qt Designer:マージンプロパティを直接設定するだけです。