动画效果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版本的插件去使用。提示:只有注册了才有提示信息,不注册是灭有的。