我正在用QML构建一个对话框。我有一些TextField
,但是如果用户按输入(发出accepted
信号),我会按下id: okButton
,实际上是暂时激活它。
我看到pressed
属性是只读的。
谢谢!
答案 0 :(得分:9)
您可以简单地调用clicked()信号来模拟按下按钮:
Keys.onReturnPressed: {
clicked()
event.accepted = true
}
答案 1 :(得分:3)
当您使用checkable
属性模拟点击时,您可以将其设为checked
一小段时间:
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
ApplicationWindow {
title: qsTr("Hello World")
width: 640
height: 480
visible: true
Timer {
id: timer
running: true
repeat: true
interval: 100
onTriggered: {
button.checked = false;
button.checkable = false;
}
}
Row {
TextField {
anchors.verticalCenter: parent.verticalCenter
onAccepted: {
button.checkable = true;
button.checked = true;
timer.start();
}
}
Button {
id: button
text: "Submit"
anchors.verticalCenter: parent.verticalCenter
}
}
}
来自TextField
的{{3}}信号的文档:
按下Return或Enter键时会发出此信号。