【问题标题】:Qt - How to place a QTextEdit with left and right margins in a QVBoxLayout?Qt - 如何在 QVBoxLayout 中放置具有左右边距的 QTextEdit?
【发布时间】:2011-03-04 11:28:30
【问题描述】:

如何在QVBoxLayout 中放置具有左右边距的QTextEdit?当然,我可以使用QHBoxLayout,将QTextEdit 放置在间距之间的水平布局中(addSpacing(40)),然后水平布局才能添加到垂直布局中,但想知道是否有一种直接的方式。

【问题讨论】:

    标签: c++ qt layout qtextedit


    【解决方案1】:

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

    但这为整个事情设置了一个边距。如果您只想要QTextEdit 的边距而不需要布局中的其他任何内容,那么您必须使用您提到的QHBoxLayout 方法。我不知道有任何其他技巧可以解决这个问题。

    【讨论】:

    • 这也很有用。谢谢。
    【解决方案2】:

    如果您只想要 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}");
    

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

    【讨论】:

    • 不幸的是 css 不起作用。我是 QTwxtEdit 所在的布局的原因。
    • 你能写下你正在使用的代码吗?很奇怪,css 样式不能添加你需要的边距,我已经使用了很多次没有问题。
    • m_TextEdit = new QTextEdit; m_TextEdit->setStyleSheet("left-margin:140px;right-margin:140px"); m_generalLayout = 新 QVBoxLayout; m_generalLayout->addLayout(m_bLayout); m_generalLayout->addStretch(); m_generalLayout->addWidget(m_qLabel); m_generalLayout->addWidget(m_TextEdit); m_generalLayout->addWidget(m_aLabel); m_generalLayout->addWidget(m_aLieEdit); m_generalLayout->addStretch(); m_generalLayout->addLayout(m_buttonLayout); m_generalLayout->addSpacing(15); setLayout(m_generalLayout);
    • BYW 我得到:未知属性左边距未知属性右边距
    • 需要写 setStyleSheet("margin-left:40px;margin-right:40px");请更正您的答案,以便我选择您的答案作为正确答案。
    【解决方案3】:

    您没有提及您是使用 Qt Designer 还是在代码中手动执行此操作。

    在代码中: QLayout 类有一个 setContentsMargins 属性,您可以使用该属性将左右设置为您想要的任何内容。甚至有两种风格,一种采用 left、top、right、bottom 作为单独的参数,另一种采用 QMargins 对象。

    Qt 设计器: 直接设置边距属性即可。

    【讨论】:

      猜你喜欢
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      相关资源
      最近更新 更多