Ale*_*ich 1 qt qml qt5 qtquick2 qtquickcontrols2
如何在 QMLTextField
元素中更改光标颜色和可能的宽度?假设我们有以下一个:
import QtQuick 2.12
import QtQuick.Controls 2.12
TextField {
id: control
placeholderText: qsTr("Enter description")
background: Rectangle {
implicitWidth: 200
implicitHeight: 40
color: control.enabled ? "transparent" : "#353637"
border.color: control.enabled ? "#21be2b" : "transparent"
}
}
Run Code Online (Sandbox Code Playgroud)
如何使光标颜色为绿色或蓝色或其他什么?谢谢!
@eyllanesc 提供了一个非常好的答案,但我想指出,当您定义自定义cursorDelegate
.
如果你想让光标闪烁。可以使用动画来完成:
import QtQuick 2.12
import QtQuick.Controls 2.12
TextField {
id: control
placeholderText: qsTr("Enter description")
background: Rectangle {
implicitWidth: 200
implicitHeight: 40
color: control.enabled ? "transparent" : "#353637"
border.color: control.enabled ? "#21be2b" : "transparent"
}
cursorDelegate: Rectangle {
id: cursor
visible: false
color: "salmon"
width: control.cursorRectangle.width
SequentialAnimation {
loops: Animation.Infinite
running: control.cursorVisible
PropertyAction {
target: cursor
property: 'visible'
value: true
}
PauseAnimation {
duration: 600
}
PropertyAction {
target: cursor
property: 'visible'
value: false
}
PauseAnimation {
duration: 600
}
onStopped: {
cursor.visible = false
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您必须将 Rectangle 设置为您想要的颜色作为光标,cursorDelegate
因为TextField
继承自TextInput
并因此共享该属性。
import QtQuick 2.12
import QtQuick.Controls 2.12
TextField {
id: control
placeholderText: qsTr("Enter description")
cursorDelegate: Rectangle {
visible: control.cursorVisible
color: "salmon"
width: control.cursorRectangle.width
}
background: Rectangle {
implicitWidth: 200
implicitHeight: 40
color: control.enabled ? "transparent" : "#353637"
border.color: control.enabled ? "#21be2b" : "transparent"
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1044 次 |
最近记录: |