如何在Cascades/QML中使用定时器
发布网友
发布时间:2022-05-03 00:04
我来回答
共1个回答
热心网友
时间:2022-06-28 15:02
非常实用、在程序里面经常需要用到。要想在QML中使用定时器、首先你得在程序的.cpp文件中加上一句qmlRegisterType<QTimer>(“timer”, 1, 0, “Timer”),这句是为了注册这个类,因为Cascades/QML本身是没有这个类的; 然后在QML文件包含它import timer 1.0好了。这些准备工作完成之后你就可以使用Qt的定时器了。 attachedObjects: [
Timer { id: mytimer interval: 500 onTimeout: { console.log("the time is out") } }]mytimer.start() 开启定时器mytimer.stop() 关闭定时器 更多的信息请大家查阅官方API。
在onTimeout这个信号里面你可以写自己需要的功能代码、interval则是定时器完成一次计时的时间、单位是毫秒。下面写一个简单的例子大家感受下计时器的具体用法。
import timer 1.0//将注册好的timer包含进来Page { property bool isOnclicked: false property bool isChanged: false attachedObjects: [ Timer { id: mytimer interval: 500//一次定时器的时间、单位为毫秒 onTimeout: { isChanged = ! isChanged if (isChanged) cont.background = Color.Green; else cont.background = Color.Red//开启定时器后背景色红绿交替变换。 } } ] Container { id: cont preferredHeight: 1280 preferredWidth: 768 background: Color.Red layout: DockLayout { } Button { id: btn verticalAlignment: VerticalAlignment.Center horizontalAlignment: HorizontalAlignment.Center text: “ON/OFF” onClicked: { isOnclicked = ! isOnclicked if (isOnclicked) mytimer.start();//启动定时器 else mytimer.stop()//停止定时器 } } }} 来源:中国黑莓开发