【问题标题】:Disable auto scrolling in a TextArea在 TextArea 中禁用自动滚动
【发布时间】:2014-08-15 05:51:21
【问题描述】:

在文本区域中:

TextArea
{
   id: outputText
   readOnly: true
   anchors.fill: parent
}

当我添加文本时

outputText.append( "someText" )

文本区域自动滚动到底部。

有没有办法关闭自动滚动?

谢谢, 斯科特

【问题讨论】:

    标签: qt qml qtquickcontrols


    【解决方案1】:

    不确定如何禁用滚动,但如果您更换视图将保持在顶部..

    outputText.append(msg)
    

    与..

    outputText += msg
    

    【讨论】:

      【解决方案2】:

      如果您查看 textArea 代码源:

      https://qt.gitorious.org/qt/qtquickcontrols/source/73afeab85fea60e2ce3f19b47becffc1e45a7165:src/controls/TextArea.qml#L420-433

      你会看到 append 函数做了:

      function append (string) {
          edit.append(string)
          __verticalScrollBar.value = __verticalScrollBar.maximumValue
      }
      

      所以如果你总是希望滚动条向上,你可以添加:

      outputText.__verticalScrollBar.value = outputText.__verticalScrollBar.minimumValue
      

      但是,如果您希望滚动条在添加文本时保持在原位,您应该这样做:

      outputText.text += (outputText.text ? "\n" : "") + "someText";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多