在ScrollView中设置Text的wrapMode属性

时间:2015-06-09 16:45:48

标签: qt qml qt5 qtquick2

我写了这样的QML:

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1

import App 0.1

ApplicationWindow {
    id: appWindow
    visible: true
    width: 300
    height: 500

    ColumnLayout {
        ScrollView {
            ColumnLayout {
                Text {
                    width: 250
                    text: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
                    wrapMode: Text.WrapAnywhere
                }
            }
        }
    }

    AppController {
        id: controller
    }
}

这是视觉结果:

enter image description here

我想将Text包裹在ScrollView内。我尝试了很多模式,但未能达到预期效果。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

只需删除ColumnLayout,此处不需要。这对我有用(如果你正在寻找的话):

import QtQuick 2.2
import QtQuick.Controls 1.3

ApplicationWindow {
  id: appWindow
  visible: true
  width: 300
  height: 500

  ScrollView {
    anchors.fill: parent

    Column {
      Repeater {
        model: 10
        delegate: Text {
          width: appWindow.width - 50
          text: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
          wrapMode: Text.WrapAnywhere
        }
      }
    }
  }
}

尽量避免固定尺寸。在您的情况下,Text不会对窗口大小调整做出反应。此外,在提供代码片段时,只需删除AppController之类的特定片段(即使在这种情况下它没什么大不了的,但任何人都可以更轻松地运行和测试代码):)

希望这有帮助!