3

QTextEdit左右の余白のあるをaに配置する方法はQVBoxLayout?もちろん、を使用してQHBoxLayoutQTextEditその水平レイアウトの間に間隔(addSpacing(40))を配置すると、水平レイアウトを垂直レイアウトに追加できますが、それを直接行う方法があるかどうかを知りたいと思います。

4

3 に答える 3

7

がある

void QLayout::setContentsMargins ( int left, int top, int right, int bottom );

しかし、これは全体の周りにマージンを設定します。QTextEditレイアウトだけにマージンが必要な場合は、QHBoxLayout 前述のアプローチを使用する必要があります。私はそれを回避するための他のトリックを知りません。

于 2010-06-16T13:51:01.507 に答える
5

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 つのオプションは、垂直レイアウトでコンテンツ マージンを使用することですが、すべての要素に適用されます。

于 2010-06-16T14:29:36.857 に答える
0

Qt Designerを使用しているのか、コードで手動でこれを行っているのかについては言及していません。

コード内:QLayoutクラスにはsetContentsMarginsプロパティがあり、これを使用して左右を好きなように設定できます。2つのフレーバーもあります。1つは別々の引数として左、上、右、下を取り、もう1つはQMarginsオブジェクトを取ります。

Qt Designer:マージンプロパティを直接設定するだけです。

于 2010-06-16T13:52:08.350 に答える