QT之QML从入门到精通(第十章)完结

动画效果Glow和发射器Emitter

import QtQuick 2.12
import QtQuick.Window 2.12
import QtCharts 2.3
import QtQuick.Controls 2.12
import QtQml.Models 2.12
import QtQuick.XmlListModel 2.12
import QtGraphicalEffects 1.0
import QtQuick.Particles 2.12

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    color: "gray"
    ParticleSystem{
        id:particlesystem

    }
    Emitter{  //发射器
        id:emitter
        anchors.fill: parent
        width: 300
        height: 400
        system: particlesystem //粒子 系统
        emitRate: 10 //发射粒子的速度
        lifeSpan: 6000 //粒子的存在时间
        lifeSpanVariation: 400 //数量
        size:15
        velocity: PointDirection{
            x:-45 //生成的方向,设置之后会一致在左边生成  -45左   45 是右
        }

    }
    ImageParticle{
        id:img
        source: "file:///C++/C++.png"
        system: particlesystem
        color: Qt.rgba(152/255,217/255,234/255,1.0)
        colorVariation: 0.3 //根据color随机修改颜色。
    }
    Attractor{ //吸引
        anchors.fill:parent
        system: particlesystem
        enabled: true
        pointX: mouse.mouseX
        pointY: mouse.mouseY
        strength: 1000000  //负数是弹开  整数是吸引
        affectedParameter: Attractor.Acceleration
        proportionalToDistance: Attractor.InverseQuadratic  //设置方式
    }
    MouseArea{
        id:mouse
        hoverEnabled: true
        anchors.fill: parent
    }
    BusyIndicator{
        width: 100
        height: 100
        anchors.bottom: parent.bottom
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottomMargin: 20
    }



    Text {
           id: txt
           text: qsTr("Waitting")
           font.pixelSize: 70
           anchors.centerIn: parent
       }
       Glow{ //发光效果
           anchors.fill: txt
           radius: 8
           samples: 17
           color: "white"
           source: txt
           id:glow
           SequentialAnimation{ //队列的动画效果
               running: true
               loops:Animation.Infinite //动画效果无限出现。
               NumberAnimation{
                   target: glow
                   property: "spread"
                   to:0
                   duration: 1000
               }
               NumberAnimation{
                   target: glow
                   property: "spread"
                   to:0.5
                   duration: 1000
               }
           }
       }

}

FLoderListModel

import QtQuick 2.12
import QtQuick.Window 2.12
import QtCharts 2.3
import QtQuick.Controls 2.12
import QtQml.Models 2.12
import QtQuick.XmlListModel 2.12
import QtGraphicalEffects 1.0
import QtQuick.Particles 2.12
import Qt.labs.folderlistmodel 2.12

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    color: "gray"

    ListView {
        width: 200; height: 400
        FolderListModel {
            id: folderModel
            nameFilters: ["*.qml"]  //查看当前路径下的所有文件
            showDirs: false //不显示文件夹
            folder: "./"
            showDirsFirst: true //先排序文件夹
        }

        model: folderModel
        delegate:     Text { text: fileName }
    }
}

Settings

         

import QtQuick 2.12
import QtQuick.Window 2.12
import QtCharts 2.3
import QtQuick.Controls 2.12
import QtQml.Models 2.12
import QtQuick.XmlListModel 2.12
import QtGraphicalEffects 1.0
import QtQuick.Particles 2.12
import Qt.labs.folderlistmodel 2.12
import Qt.labs.settings 1.0

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    Text {
        id: txt
        text: settings.val
        font.pixelSize: 40

    }

    Settings{
        id:settings
        fileName: "./setting.ini" //设置文件,不设置在注册表中Windows系统。
        property int val: 0
        property double d:1.24 //只能使用基本类型。不能保存qml对象
//        category: "other" //设置分组
        property var myvar: [1,2,3,"fa"]
        property string  qstr: "mystr"



    }
    Button{
        id:btn
        width: 100
        height: 50
        x:100
        onClicked: {
             settings.val+=1;
            console.log( settings.value("mystr",-1) ) //存在输出,不存在输出-1
           settings.setValue(val,100) //设置value

        }
    }
}

QML如何打包成dll

创建项目选择这个,然后choose ,一直下一步就好。本人这个创建项目后,编译提示报错,暂时没有解决

如何生成QML提示信息

pro文件中设置QML_IMPORT_PATH 指定模块的路径,模块的父路径。

qmlplugindump工具  使用qmlplugindump 组件名称 版本号 模块父路径 > 重定向的路径

一般需要release版本的插件去使用。提示:只有注册了才有提示信息,不注册是灭有的。

完结撒花

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

only-lucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值