关于 qml开发中使用Image元素切换图片闪黑屏 的解决方法

简介: 关于 qml开发中使用Image元素切换图片闪黑屏 的解决方法

异常

       鼠标点击切换图片(开关声音)时黑屏,每次启动应用第三次切换黑屏(原本是开->关->开->关),只要是全屏就会黑屏(不全屏不闪黑)

001.gif

异常核心代码

main.cpp

    MainWindow w;
    w.showFullScreen();

mainwindow.cpp

    // 加载qml
    _pQuickView = new QQuickView();
    _pQuickView->setSource(QUrl("qml/welcome.qml"));
    _pQuickWidget = QWidget::createWindowContainer(_pQuickView, this);
    _pQuickWidget->setGeometry(rect());
    _pQuickWidget->show();

qml/welcome.qml

import QtQuick 2.2
Item {
    property bool mute: false;
    Image {
        id: volume;
        width: 24;
        height: 24;
        anchors.right: close.left;
        anchors.rightMargin: 24;
        anchors.bottom: close.bottom;
        source: mute?"../images/no_sound.png":"../images/sound.png";
        MouseArea {
            anchors.fill: parent;
            onClicked: {
                mute = !mute;
            }
        }
    }
}

解决方法1

       直接将Image元素换成AnimatedSprite

import QtQuick 2.2
Item {
    property bool mute: false;
    AnimatedSprite{
        id: volume;
        width: 24;
        height: 24;
        anchors.right: close.left;
        anchors.rightMargin: 24;
        anchors.bottom: close.bottom;
        source: mute?"../images/no_sound.png":"../images/sound.png";
        MouseArea {
            anchors.fill: parent;
            onClicked: {
                mute = !mute;
            }
        }
    }
}

2.gif

解决方法2(推荐)-2017年12月8日

       升级Qt版本5.9.3,自身修复了很多bug




相关文章
|
缓存 Ubuntu JavaScript
踩坑记录:QML加载图片资源
踩坑记录:QML加载图片资源
1917 0
|
存储 关系型数据库 MySQL
RDS MySQL 数据库运维简述
从运维的视角,汇总云数据库RDS MySQL使用的避坑指南。文章初版,维护更新,欢迎指点。
1270 3
|
7月前
|
存储 缓存 人工智能
阿里云Tair KVCache:打造以缓存为中心的大模型Token超级工厂
Tair KVCache 是阿里云推出的面向大语言模型推理场景的缓存加速服务,基于分布式内存池化和分级缓存体系,解决显存墙与带宽瓶颈问题。为万亿参数模型的高效推理提供技术保障,推动 AI 算力进化与规模化应用。
WK
|
11月前
|
计算机视觉
QLabel
QLabel是Qt框架中的控件类,主要用于显示文本或图像。它可以显示静态文本、支持富文本和多种图像格式,提供丰富的成员函数如setText、setPixmap等,支持对齐方式和样式表设置,具备一定的交互性,广泛应用于图像标注、处理和交互等场景。
WK
579 0
|
测试技术 API 数据库
了解1688API接口测试 | 1688 API接口测试指南
在当今电子商务快速发展的时代,1688作为中国最大的B2B电子商务平台之一,为商家提供了丰富的商品资源和交易平台。为了方便商家进行商品管理和交易操作,1688提供了一系列的API接口,通过这些接口,商家可以方便地获取商品信息、发布商品、管理订单等。然而,在使用这些API接口之前,我们需要进行接口测试,以确保接口的正常运行和数据的准确性。本文将详细介绍1688API接口测试的重要性和方法,并提供相关的代码示例。
|
移动开发 小程序 安全
使用阿里云短信+微信短链接跳转微信小程序
此内容是关于使用阿里云短信带传递参数的微信短链接跳转到微信小程序。首先,需要准备微信开发者工具和一个已认证的小程序。接着,开通云开发并配置云开发权限。然后,配置H5静态网页,包括设置云开发权限和处理不同设备的跳转方式。最后,上传云函数并修改其权限,获取微信短信链接,配置短链接参数,并开通阿里云短信服务以进行测试验证。整个过程涉及到了微信开发者工具、云开发、H5页面配置、云函数的创建和部署以及阿里云短信服务的开通和使用等步骤。
1821 0
|
数据处理 调度 开发者
QML多线程魔法:探索不同方法,提升性能
QML多线程魔法:探索不同方法,提升性能
1555 0
|
编解码 网络协议 网络性能优化
RTP/RTCP 协议讲解
RTP/RTCP 协议讲解
1987 0
|
开发工具 C++ 开发者
Qt Quick Image探秘:从底层原理到高级应用(一)
Qt Quick Image探秘:从底层原理到高级应用
466 0