有
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)
另一个选项是在垂直布局中使用内容边距,但随后将其应用于所有元素.