我正在使用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有什么问题。我错过了要设置的任何属性值。请帮忙
答案 0 :(得分:4)
在ColumnLayout内部,宽度属性将被忽略。
而是设置Text元素的Layout.preferredWidth
或Layout.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
}
}
}