如何以编程方式按下 QML 按钮?
Posted
技术标签:
【中文标题】如何以编程方式按下 QML 按钮?【英文标题】:How to programmatically press QML Button? 【发布时间】:2015-09-06 16:54:27 【问题描述】:我正在 QML 中构建一个对话框。我有一些TextField
,但我希望如果用户按下 enter (accepted
信号被发出),id: okButton
被按下,实际上在视觉上激活它片刻。
我看到pressed
属性是只读的。
谢谢!
【问题讨论】:
【参考方案1】:您可以简单地调用 clicked() 信号来模拟按钮按下:
Keys.onReturnPressed:
clicked()
event.accepted = true
【讨论】:
我收到通知回来了,只是注意到了这一点。我想说这种方法不会做问题所要求的,即“在视觉上激活它片刻”。这个答案会发出 clicked 信号,但我怀疑按钮的视觉状态会改变。不过我还没有测试过..【参考方案2】:您可以在使用checked
属性模拟点击时将其设为checkable
一小段时间:
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
的accepted()
信号的文档:
当按下 Return 或 Enter 键时会发出此信号。
【讨论】:
以上是关于如何以编程方式按下 QML 按钮?的主要内容,如果未能解决你的问题,请参考以下文章
在swift3中按下按钮时如何以编程方式执行segue或呈现视图