这个月月初开始自学和使用QML。
要求是再主界面循环播放一个视频,通过触摸屏进入菜单界面。若待机5秒,则返回视频播放。
思路是再管理员按下start按钮后,按钮和倒计时文本隐藏,视频播放;倒计时结束后将视频和倒计时重置。(倒计时 == 视频时间)
import QtQuick 2.12
import QtMultimedia 5.0
import QtQuick.Window 2.12
Item {id:itemvisible: trueanchors.fill: parentMediaPlayer {id: mediaplayersource: "file:/zynsucai/fz.mp4"}VideoOutput {id:videooutputanchors.fill: parentsource: mediaplayer}MouseArea {id: playAreaanchors.fill: parentonDoubleClicked: {item.visible = falsemediaplayer.stop()countDown.stop();client1.visible = trueattrs2.counter = 5;attrs1.counter = 61;countDown2.start()}}
倒计时文本的隐藏通过改变字体的透明度来改变
QtObject{id: attrs1;property int counter;Component.onCompleted: {attrs1.counter = 61;}}Text{id:countShow;anchors.centerIn: parent;color:"red"opacity: 0font.pixelSize: 40;}Timer{id:countDown;interval: 1000;repeat: true;triggeredOnStart: true;onTriggered: {countShow.text = attrs1.counter;attrs1.counter -= 1;while(attrs1.counter < 0 ){countDown.stop();mediaplayer.stop();mediaplayer.playbackRatemediaplayer.play();attrs1.counter = 61;countDown.start();}}}Button{id: startButton;visible: truex:0;y:0text: "Start";onClicked: {mediaplayer.play();attrs1.counter = 61;countDown.start();startButton.visible = false}}}
Rectangle{id:client1visible: falsewidth:640;height: 480color: "#FFFFFF"Button1 {id:buttonanchors.centerIn:parentMouseArea{anchors.fill: parentonClicked: {client1.visible = falseclient2.visible = truecountDown.stop();countDown2.stop();mediaplayer.stop();}}}QtObject{id: attrs2;property int counter;Component.onCompleted: {attrs2.counter = 5;}}Timer{id:countDown2;interval: 1000;repeat: true;triggeredOnStart: true;onTriggered: {attrs2.counter -= 1;if(attrs2.counter < 1 ){countDown2.stop()mediaplayer.play();item.visible = truecountDown.start()client1.visible = false}}}}
最后就是在后续界面的返回按钮中设置计时器的重置来达到待机的功能
Goback{id:goback3x:490;y:330MouseArea{anchors.fill: parentonClicked: {client2.visible = falseclient1.visible = trueattrs2.counter = 5;attrs1.counter = 61;countDown2.start()}}}```
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!