尝试不同的代码组合并部分解决我的问题,我遇到了无法完全解释的行为。因此,当我创建一个没有Scrollview的简单TextArea时,它看起来像这样:
RowLayout {
id: rowLayout
Rectangle{
height: 50
width: 295
TextArea {
id: textArea
text: (" message...")
wrapMode: Text.WrapAnywhere
anchors.fill: parent
}
}
文本区域创建默认背景。现在,我想使用ScrollView ALSO和默认的TextArea背景来做TextArea,但结果是这样的:
RowLayout {
id: rowLayout
Rectangle{
height: 50
width: 295
ScrollView {
id: scrollView1
anchors.fill: parent
TextArea {
id: textArea
text: (" message...")
wrapMode: Text.WrapAnywhere
}
}
}
设置默认TextArea背景的唯一机会是设置hiddenHeight,implicitWidth,但是在将文本输入到TextArea中直到滚动条出现之后,背景会像下面这样在其他组件后面延伸到整个长度上:
RowLayout {
id: rowLayout
Rectangle{
//color: "#00000000"
height: 50
width: 295
ScrollView {
id: scrollView1
anchors.fill: parent
TextArea {
id: textArea
text: (" message...")
wrapMode: Text.WrapAnywhere
implicitHeight: 50
implicitWidth: 295
}
}
}
因此,我唯一想要的是可滚动的文本区域,但是具有黑色的默认背景,而不是矩形可以处理的背景。 谁能看一看? 谢谢:)
答案 0 :(得分:1)
我尽力了。检查下面的示例,希望对您有所帮助=)
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
ApplicationWindow {
visible: true
width: 400
height: 400
RowLayout {
width: 295
height: 50
anchors.centerIn: parent
ScrollView {
Layout.fillHeight: true
Layout.fillWidth: true
background: Rectangle { color: "black" }
TextArea {
id: messageField
placeholderText: qsTr("message...")
color: "white"
wrapMode: TextArea.WrapAnywhere
}
}
}
}
结果: