如何创建 QML 按钮,它在按下时发出恒定信号

问题描述 投票:0回答:2

我有一个带 4 个按钮的操纵杆。

我需要在按住按钮时一次又一次地调用一些短的单次增量函数,所以,我需要一个按钮,它在按下时发出恒定信号。

我试过

onPressAndHold
,但它只会在一定时间后发出一个信号,当我需要通过按下按钮发出一个恒定的信号时。 (我只想每隔一段时间调用一次单发函数)。

当然我可以写一个“标志”按钮,它将通过循环启动该功能,直到使用

onReleased
方法更改标志为止。但是,我不想重写函数 + 使用循环对这个项目不好,因为它的架构过载。

python qt pyqt qml pyside2
2个回答
1
投票

如@hyde 所述,您可以使用计时器并相应地启动/停止它:

Timer {
    id: timer
    interval: 100
    repeat: true

    onTriggered: {
        console.log("trigger");
    }
}

Button {
    text: "Press"

    onPressed: {
        timer.start();
    }

    onReleased: {
        timer.stop();
    }
}

0
投票

您可以使用autoRepeatautoRepeatDelay

Button {
    text: "Press"
    autoRepeat: true
    autoRepeatDelay: 100

    onPressed: console.log("pressing")
}
© www.soinside.com 2019 - 2024. All rights reserved.