#qt #qml #qtquick2 #qtquickcontrols2
Вопрос:
У меня есть следующий пример быстрого приложения Qt:
import QtQuick 2.12
import QtQuick.Controls 2.15
import QtQuick.Window 2.12
Window {
width: 640
height: 480
visible: true
ListView {
id: list
anchors.fill: parent
model: ListModel {
id: listView
ListElement { name: "Element 1" }
ListElement { name: "Element 2" }
ListElement { name: "Element 3" }
ListElement { name: "Element 4" }
}
delegate: ItemDelegate {
property string textcolor: "black";
contentItem: Text {
id: content
width: parent.width
text: name
color: textcolor
}
onPressAndHold: { textcolor = "red"; }
}
}
}
Я меняю цвет текста на одном элементе во время onPressAndHold
события. Как я могу уменьшить продолжительность до тех пор, пока событие не будет отправлено?
Я пытался использовать pressAndHoldInterval, но, похоже, он не существует для ItemDelegate.
Ответ №1:
Интервал устанавливается через mousePressAndHoldInterval()
of QStyleHints
, в этом случае решение заключается в использовании задатчика, который, по-видимому, не задокументирован.
QGuiApplication app(argc, argv);
app.styleHints()->setMousePressAndHoldInterval(10);
Комментарии:
1. Это работает как заклинание! Я искал решение в QML и никогда не думал о том, чтобы установить его глобально.