QML: изменить цвет курсора в TextField - PullRequest
1 голос
/ 06 ноября 2019

Как изменить цвет курсора и, возможно, ширину в элементе QML TextField? Допустим, у нас есть следующий:

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"
    }
}

Как сделать курсор цветным зеленым или синим или что-то еще? Спасибо!

1 Ответ

2 голосов
/ 06 ноября 2019

Вы должны установить Rectangle с нужным цветом в качестве курсора через cursorDelegate, поскольку TextField наследуется от TextInput и, следовательно,разделяет это свойство.

import QtQuick 2.12
import QtQuick.Controls 2.12

TextField {
    id: control
    placeholderText: qsTr("Enter description")
    <b>cursorDelegate: Rectangle {
        visible: control.cursorVisible
        color: "salmon"
        width: control.cursorRectangle.width
    }</b>
    background: Rectangle {
        implicitWidth: 200
        implicitHeight: 40
        color: control.enabled ? "transparent" : "#353637"
        border.color: control.enabled ? "#21be2b" : "transparent"
    }
}
...