Qt - 如何在QVBoxLayout中放置具有左右边距的QTextEdit?

Nar*_*rek 3 c++ layout qt qtextedit

如何在QTextEdit左边和右边距放置一个QVBoxLayout?当然,我可以使用a QHBoxLayout,将QTextEdit水平布局置于间距(addSpacing(40))之间,然后只有水平布局可以添加到垂直布局中,但想知道是否有直接的方法.

Tro*_*our 7

void QLayout::setContentsMargins ( int left, int top, int right, int bottom );
Run Code Online (Sandbox Code Playgroud)

但这为整个事情设定了一个余地.如果你只想QTextEdit在布局中使用边距,那么你必须使用QHBoxLayout 你提到的方法.我不知道有任何其他技巧来解决这个问题.


小智 5

如果只想要QTextEdit的边距而不是QVerticalLayout中的任何其他元素,则可以使用QT样式表.您只需要为QTextEdit对象命名(如"myMarginsTextEdit")并设置样式,例如:

QTextEdit#myMarginsTextEdit
{
    margin-left: 40px;
    margin-right: 40px;
}
Run Code Online (Sandbox Code Playgroud)

如果您没有使用QT样式表来设置应用程序的样式,您仍然可以仅使用它来设置该项目的样式.你可以这样做(想象你的QTextEdit变量是调用"textEditItem"):

textEditItem.setStyleSheet("QTextEdit {margin-left:40px; margin-right:40px}");
Run Code Online (Sandbox Code Playgroud)

另一个选项是在垂直布局中使用内容边距,但随后将其应用于所有元素.