Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在5秒间隔QML之后触发图像在点击时的可见性

如何在5秒间隔QML之后触发图像在点击时的可见性
EN

Stack Overflow用户
提问于 2021-09-20 06:29:10
回答 1查看 53关注 0票数 0

我正在尝试设置一个图像的计时器,但是图像需要在5秒内可见,然后淡出,除非它在点击时再次触发。下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
 Video{
                 id:video
                 //width:500
                 //height:300
                 //anchors.left:parent
                 autoLoad: true
                 autoPlay: true
                 //hasVideo: true
                 //source:"http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/0640_vod.m3u8"
                 width:isFullScreen?1080:500
                 height:isFullScreen?1060:300


                 Image{
                     id:img1
                     width:parent.width/5
                     height:parent.height/5
                     anchors.centerIn: parent
                     source:'qrc:play-circle-outline.svg'
                     property int duration:5000




                     MouseArea{
                        anchors.fill:parent
                        onClicked:{
                            if(video.playbackState===1){
                                  video.pause()
                                  img1.source='qrc:play-circle-outline.svg'
                                }else if(video.playbackState===2){
                                  video.play()
                                  img1.source='qrc:pause-outline.svg'

                               }
                          }
                       }

                   }

                 Image{
                     id:img2
                     width:parent.width/5
                     height:parent.height/5
                     anchors.bottom:video.bottom
                     anchors.right:video.right
                     source: isFullScreen? 'qrc:enter-outline.svg':'qrc:exit-outline.svg'

                     Timer {
                            interval: 5000
                            onTriggered: img2.visible = true
                            running: false

                        }



                     MouseArea{
                        anchors.fill:parent
                       /* onClicked:{
                              if(isFullScreen){
                                  video.height=300
                                  video.width=500
                                  img2.source='qrc:exit-outline.svg'
                                }else{
                                  video.height=1060
                                  video.width=1080/2
                                  img2='qrc:enter-outline.svg'
                               }
                          }*/

                          onClicked:isFullScreen=!isFullScreen


                       }

                 }

      }

我在img2下设置了一个计时器,但在播放视频的整个过程中,图像仍然可见。最让我头疼的是点击后再次触发的图片部分。任何想法都将不胜感激。

编辑:我设法在5秒后用img2下面的PropertyAnimation隐藏了图像

代码语言:javascript
运行
AI代码解释
复制
 PropertyAnimation {
        running: true
        target: rect
        property: 'visible'
        to: false
        duration: 5000 // turns to false after 5000 ms
    }

我只需要图像再次可见的点击5秒。这可以在QML中实现吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-20 08:23:50

可见性只是一个布尔值,你不能用这种方式淡出QML项目。您必须设置不透明度。为了简单起见,我使用矩形而不是图像。在这个例子中,淡入和淡出都会发生。如果您希望图像立即出现,则需要进行一些调整。

代码语言:javascript
运行
AI代码解释
复制
import QtQuick 2.12
import QtQuick.Controls 2.12

Rectangle
{
    id: bg
    anchors.fill: parent
    color: "red"

    Timer {
        id: tmr
        interval: 5000
    }

    Button {
        z: img.z+1
        anchors.centerIn: parent
        text: tmr.running ? "Running" : "Start timer"
        onClicked: {
            tmr.stop()
            tmr.start()
        }
    }

    Rectangle {
        id: img
        width: 200
        height: 200
        anchors.centerIn: parent
        opacity: tmr.running ? 1.0 : 0.0
        Behavior on opacity { PropertyAnimation { duration: 1000 } }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69256157

复制
相关文章
Java 指定日期和日期间隔,返回间隔 之前 | 之后 的日期
public class DateUtil { /** * 指定日期和日期间隔,返回间隔之前的日期 * @param specifiedDay * @param interval * @return */ public static String getSpecifiedDayAgo(String specifiedDay, int interval){ return getSpecifiedDay(specifiedDay
大数据工程师-公子
2019/03/14
2.7K0
Bootstrap- Modal对话框如何在关闭时触发事件
下表列出了模态框中要用到事件。这些事件可在函数中当钩子使用。 事件 描述 实例 show.bs.modal 在调用 show 方法后触发。 $('#identifier').on('show.bs.modal', function () { // 执行一些动作... }) shown.bs.modal 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。 $('#identifier').on('shown.bs.modal', function () { // 执行一些动作... }) hide
johnhuster的分享
2022/03/28
2.1K0
解决RecyclerView点击一个item,后面每间隔9个item就会触发一次同样的事件的问题
当你通过点击事件改变第一个item的状态之后,向下滑动到第10个item也会同样触发,然后第19、28、37、46等等,每间隔9个item就会重复之前的操作后的显示状态。
用户10521372
2023/05/22
4930
Qt官方示例-Qml鼠标点击与拖拽
  当您在红色方块内单击鼠标时,界面下方区域文本将显示出单击鼠标的一些属性,这些属性可用于QML中。按下鼠标时,红色方块的不透明度将降低,并保留在MouseArea内。当其中发生单击或双击等其他操作时,MouseArea会发出对应的信号。
Qt君
2020/04/01
2.8K0
点击scrollview释放键盘触发touchesBegan方法
scrollView 本身继承 了 touch 的响应 事件,要从新自定义 scrollView 的 响应事件。
全栈程序员站长
2022/09/15
4420
点击时扩散效果
  <style> p { margin: 0; position: relative; padding: 60px 30px; background-color: orange; color: #fff; width: 200px; overflow: hidden; text-align: center; border: 20px solid #000; } i { position: absolute; widt
ProsperLee
2018/10/24
1.1K0
C# VS2015 winform TreeView 之后点击树中的一个节点,触发事件问题
string name;         private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)         {             name = e.Node.Text.ToString();             if (name == "纸箱展开图")             {                 WindowsFormsApplication4.Form1 f = new WindowsFormsApplication4.Form1();                 f.ShowDialog();             }             if (name == "员工登记")             {                 guidesoft.yuangongguanli.FormYGList f = new yuangongguanli.FormYGList();                 f.ShowDialog();             }             if (name == "客户登记")             {                 guidesoft.khdj.FormKHList f = new khdj.FormKHList(UserHelper.username);                 f.ShowDialog();             }             if (name == "成品入库")             {                 guidesoft.cprk.Formlist f = new cprk.Formlist(UserHelper.username);                 f.ShowDialog();             }             if (name == "部门登记")             {                 guidesoft.bmdj.FormBMDJ f = new bmdj.FormBMDJ(UserHelper.username);                 f.ShowDialog();             }
静谧的小码农
2019/01/11
2.3K0
QML入门教程:一、QML和QtQuick简介以及QML实例
从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。在 Qt 5 中, QML 有了长足进步,并且同 C++ 并列成为 Qt 的首选编程语言。也就是说,使用 Qt 5,我们不仅可以使用 C++ 开发 Qt 程序,而且可以使用 QML。虽然 QML 是解释型语言,性能要比 C++ 低一些,但是新版 QML 使用 V8,Qt 5.2 又引入了专为 QML 优化的 V4 引擎,使得其性能不再有明显降低。在 Nokia 发布 Qt 4.7 的时候,QML 被用于开发手机应用程序,全面支持触摸操作、流畅的动画效果等。但是在 Qt 5 中,QML 已经不仅限于开发手机应用,也可以用户开发传统的桌面程序。 QML 文档描述了一个对象树。QML 元素包含了其构造块、图形元素(矩形、图片等)和行为(例如动画、切换等)。这些 QML 元素按照一定的嵌套关系构成复杂的组件,供用户交互。 ——摘自《Qt学习之路2》
全栈程序员站长
2022/11/01
4.6K0
QML入门教程:一、QML和QtQuick简介以及QML实例
jquery实现点击某元素之外触发事件
<script> $(function(){ $(document).click(function (e) { if (!$(e.target).is('.program_rooms')) { $(".room_change").slideUp('slow'); $(".program_rooms").attr("data-sure","0"); }
山河木马
2019/03/05
2.9K0
小程序中点击子元素事件而不触发父元素的点击事件
在测试小程序的时候,发现了这样的一个bug,点击子元素事件d的时候触发父元素的点击事件,从而执行父级的点击事件,跳转到了父级的点击事件的页面了。
王小婷
2019/02/21
6.2K0
小程序中点击子元素事件而不触发父元素的点击事件
Ios8之后, 定位的delegate不能触发的问题
if([CLLocationManager locationServicesEnabled]){ self.locationManage = [[[CLLocationManager alloc] init] autorelease]; self.locationManage.delegate = self; self.locationManage.distanceFilter = 200; self.locationManage.desiredAccuracy = kCLL
FlyLolo
2018/05/17
6320
让点击链接上的元素不触发链接的跳转
最近有个做招聘网站的客户提出了个修改要求,要求报名列表上的某个元素可点击,点击后可以录取这个人。 这不是日了个狗了嘛,现在的列表项的每项是用a标签包着的,并且是多处调用这里,所以不能将a标签改成其它。 不过也得满足不是。 经过一番查找,找到一个方法:阻止冒泡事件
jwj
2022/05/18
1.1K0
vue实现点击关注之后及时更新列表
如图,我要实现点击关注之后列表及时更新成最新的列表。 思路很简单,主要是两点: 1、在点击关注之后去执行一个请求新的关注列表的action; 2、在vue组件中watch监听已关注列表和推荐关注列表 主要代码如下: 组件: 关注的methods: followMethod(item){ if(this.token){ this.$store.dispatch('follow',{followUserId:item.pubId,page:this.page,siz
蓓蕾心晴
2018/07/05
7890
MIT造出薄如纸的音响,可铺满全屋
选自MIT News 作者:Adam Zewe 机器之心编译 机器之心编辑部 这种柔性薄膜器件有可能将任何表面变成低功率、高质量的音源。 麻省理工学院的工程师们开发出了一种像纸一样薄的扬声器,可以将任何表面变成音源。 它的重量相当于一个 10 美分的硬币,无论粘在什么表面上都能生成高品质的声音。 这种薄膜扬声器产生的声音失真最小,而且使用的能量也比传统扬声器少得多。 为了实现这些特性,研究人员开创了一种看似简单的制造技术,只需要三个基本步骤。利用这种技术,他们可以制造出足够大的超薄扬声器,覆盖汽车内部或
机器之心
2022/04/28
6780
MIT造出薄如纸的音响,可铺满全屋
MUI TableViewCell 上按钮点击Cell同时触发解决
   我们点击按钮的时候,Cell事件也被触发,在iOS中可以用hittest通过判断控件位置和显示顺序执行点击。起初想按照这个思路来改。看MUI 提供了解决法防止事件冒泡。
星宇大前端
2019/01/15
1.4K0
点击加载更多

相似问题

可滚动QML图

24

带间隔的触发点击

14

在QML TableView中,点击编辑数据(如excel)

213

触发鼠标点击和随机间隔

43

Qml计时器未在正确的时间间隔内触发

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档