如何在 a 中放置QTextEdit
具有左右边距的 a QVBoxLayout
?当然,我可以使用 a QHBoxLayout
,将其放置在QTextEdit
水平布局之间的间距 ( addSpacing(40)
) 中,然后水平布局才能添加到垂直布局中,但想知道是否有直接的方法可以做到这一点。
问问题
6287 次
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}");
另一个选项是在垂直布局中使用内容边距,然后将其应用于所有元素。
于 2010-06-16T14:29:36.857 回答
0
您没有提及您是使用 Qt Designer 还是在代码中手动执行此操作。
在代码中: QLayout 类有一个 setContentsMargins 属性,您可以使用该属性将左右设置为您想要的任何内容。甚至有两种风格,一种采用 left、top、right、bottom 作为单独的参数,另一种采用 QMargins 对象。
Qt Designer:直接设置边距属性即可。
于 2010-06-16T13:52:08.350 回答