QML TextEdit 中的占位符文本
Placeholder text in QML TextEdit
我正在寻找一种方法来显示文本提示,说明预期的输入作为对用户的建议。以Google搜索栏为例:
我是否遗漏了 属性,或者这是否必须通过脚本来实现?
Qt Quick 输入项中不存在 属性。您可以为功能投票 here.
同时,您可以使用 Qt Quick Controls 2 中的 TextArea
。
如果您更愿意使用纯 Qt Quick,您可以做一些类似于控件所做的事情,并在字段上方添加一个 Text
项目:
import QtQuick 2.5
import QtQuick.Window 2.2
Window {
width: 300
height: 300
visible: true
TextEdit {
id: textEdit
width: 200
height: 50
property string placeholderText: "Enter text here..."
Text {
text: textEdit.placeholderText
color: "#aaa"
visible: !textEdit.text
}
}
}
这有点旧,但我发现 Android 构建 的另一个必要条件。
由于 Android 仅在您在虚拟键盘中按确定后才发送文本编辑信号,因此占位符将保留在那里。所以为了避免它,我建议:
TextEdit {
id: textEdit
width: 200
height: 50
property string placeholderText: "Enter text here..."
Text {
text: textEdit.placeholderText
color: "#aaa"
visible: !textEdit.text && !textEdit.activeFocus // <----------- ;-)
}
}
如果你想要一行输入那么为什么不使用TextField?
我正在寻找一种方法来显示文本提示,说明预期的输入作为对用户的建议。以Google搜索栏为例:
我是否遗漏了 属性,或者这是否必须通过脚本来实现?
Qt Quick 输入项中不存在 属性。您可以为功能投票 here.
同时,您可以使用 Qt Quick Controls 2 中的 TextArea
。
如果您更愿意使用纯 Qt Quick,您可以做一些类似于控件所做的事情,并在字段上方添加一个 Text
项目:
import QtQuick 2.5
import QtQuick.Window 2.2
Window {
width: 300
height: 300
visible: true
TextEdit {
id: textEdit
width: 200
height: 50
property string placeholderText: "Enter text here..."
Text {
text: textEdit.placeholderText
color: "#aaa"
visible: !textEdit.text
}
}
}
这有点旧,但我发现 Android 构建 的另一个必要条件。 由于 Android 仅在您在虚拟键盘中按确定后才发送文本编辑信号,因此占位符将保留在那里。所以为了避免它,我建议:
TextEdit {
id: textEdit
width: 200
height: 50
property string placeholderText: "Enter text here..."
Text {
text: textEdit.placeholderText
color: "#aaa"
visible: !textEdit.text && !textEdit.activeFocus // <----------- ;-)
}
}
如果你想要一行输入那么为什么不使用TextField?