QT Text.WordWrap在ColumnLayout中不起作用

时间:2017-06-23 05:25:18

标签: c++ qt qml

我正在使用QT QML开发应用程序。我正面临着QML的一个奇怪问题。我想使用QML划分和显示长文本。我正在使用QT Text元素来执行此任务。我想将此文本放在QT Columnlayout内与其他UI元素一起。我无法将长文本显示为多行文本。请帮我解决这个问题。这是我的QML代码。

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
color: "#18d28a"

    ColumnLayout{
        id: base_coloumn_layout
        width: parent.width
        Layout.margins: 10

        Text {
            id: application_instruction
            width: 640
            text: qsTr("xyxvx dgdgdh dhdgdd dhdgdhhgd dhhhdgd dhdgdg dhdgdh djhddh djddgdhgdh dhdgdhgdgh dhgdgdhj dhdgdghdg dhjdgdgd.")
            color: "#000000"
            font.pointSize: 12
            wrapMode: Text.WordWrap
        }
    }
}

当放置在ColoumnLayout之外时,相同的元素正常工作。我可以将文本显示为多行,代码如下。我希望相同的代码应该作为ColoumnLayout的子项工作,因为ColoumnLayout

中会有更多元素
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
color: "#18d28a"

    Text {
        id: application_instruction
        width: 640
        text: qsTr("xyxvx dgdgdh dhdgdd dhdgdhhgd dhhhdgd dhdgdg dhdgdh djhddh djddgdhgdh dhdgdhgdgh dhgdgdhj dhdgdghdg dhjdgdgd.")
        color: "#000000"
        font.pointSize: 12
        wrapMode: Text.WordWrap
    }
}

ColoumnLayout有什么问题。我错过了要设置的任何属性值。请帮忙

2 个答案:

答案 0 :(得分:4)

在ColumnLayout内部,宽度属性将被忽略。

而是设置Text元素的Layout.preferredWidthLayout.maximumWidth附加属性。

如果您希望项目填充ColumnLayout的宽度,可以将Layout.fillWidth附加属性设置为true

答案 1 :(得分:0)

从Mark给出的答案中,我们可以将qml更改为给定的下方,我们可以显示多行文字。

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
    id: application_window
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    color: "#18d28a"
    ColumnLayout {
        id: base_coloumn_layout
        width: parent.width
        Layout.margins: 10
        Text {
            id: application_instruction
            width: application_window.width
            Layout.preferredWidth: application_window.width
            text: qsTr("xyxvx dgdgdh dhdgdd dhdgdhhgd dhhhdgd dhdgdg dhdgdh djhddh djddgdhgdh dhdgdhgdgh dhgdgdhj dhdgdghdg dhjdgdgd.")
            color: "#000000"
            font.pointSize: 12
            wrapMode: Text.WordWrap
        }
    }
}