在QML中滑鼠單擊特殊效果實現示例
還是借鑑了Qt自帶的掃雷示例中的程式碼!(Qt中的一些程式碼還是有非常好的借鑑意義的,值得學習一下,推薦像我們這種初學者去學習學習!)
首先是效果顯示控制元件:
//Explosion.qml
importQtQuick1.0
importQt.labs.particles1.0
Item{
propertyboolexplode:false
Particles{
id:particles
width:30
height:30
lifeSpan:800
lifeSpanDeviation:0
source:"../Images/star.png"
count:0
angle:270
angleDeviation:360
velocity:100
velocityDeviation:20
z:100
}
states:State{name:"exploding";when:explode
StateChangeScript{script:particles.burst(200);}
}
}
這段基本上就是掃雷應用程式中的照搬下來的!圖片來源自己更改了相對路徑。Particles聲明瞭可以隨機出現指定source的效果。
具體說,就是聲明瞭圖片(source)出現的宣告週期(lifeSpan)以及不同宣告週期之間的差距(lifeSpanDeviation),例如若lifeSpan為800,而lifeSpanDeviation為200,那麼這些圖片就會出現600至1000不等的時間。
角度angle屬性的變化範圍以及速度velocity屬性的變化範圍都依次類推。這個還可以好好再推敲一下。
上述qml的使用就是,放到某個大框(Item或Rectangle等等)裡,然後通過制定出現的x和y為滑鼠區域的mouse.x和mouse.y來實現在滑鼠單擊的時候出現類似於焰火的效果。簡單的使用如下:
Explosion{
id:expl
x:parent.width/2-15
y:parent.height/2-15
}
我這裡是不論滑鼠在哪單擊都從窗體的中心位置顯示這個效果。這裡的15是Explosion的長度的一半,意思是讓Explosion的中心與父Item的中心重合。(就是一個糾正值!)
觸發可以有很多種方式,這裡的觸發方式如下:
Rectangle{
id:content
MouseArea{
anchors.fill:parent
onClicked:{
expl.explode=true
}
onReleased:{
expl.explode=false
}
}
}
其它的程式碼都略去了,具體效果自己也可以多試試。
希望對你有幫助。
補充一句,這個particles出現的效果是隨機的!我還曾經嘗試用這個模擬過下雨,下雪效果,不錯的控制元件!很炫。哈哈
相關推薦
在QML中滑鼠單擊特殊效果實現示例
還是借鑑了Qt自帶的掃雷示例中的程式碼!(Qt中的一些程式碼還是有非常好的借鑑意義的,值得學習一下,推薦像我們這種初學者去學習學習!) 首先是效果顯示控制元件: //Explosion.qml importQtQuick1.0 importQt.labs.particles
MFC vc++ 中CTreeContrl如何自定義實現滑鼠單擊或雙擊響應事件 ,即重寫類似於控制元件的響應事件或訊息
目的:自定義修改mfc視窗的FileView中已有的樹結構,而不是新增的樹控制元件 實現的效果如圖:點選“地圖”後彈出框提示,點選響應效果與控制元件的響應事件類似 首先需要重寫CtreeContrl: ① 在CViewTree類的.h標頭檔案中新增程式碼: a
使用Layui實現資料表格中滑鼠懸浮圖片放大效果,離開時恢復原圖
var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '<%=path%>/
滑鼠單擊複製貼上標籤中的內容
<span ref="spanContentOne" id="spanContentOne" style="font-size: 14px;">或許不是最亮眼,總比瞎買強一點</span> <!--<input type="button" @click="cop
React 實現 antd中Table單擊獲取內容
<Table columns={columns} dataSource={data} size="middle" onRow = {(record) => { return { onClick: () => { console
自己寫的滑鼠單擊按鈕實現圖片切換
<!doctype html> <html> <head> <meta charset="utf-8"> <title>無標題文件</title> <style type="text/css"&g
【其他】Activity中通過 ctrl+滑鼠單擊 直接連結到對應的xml佈局檔案,而不是開啟R檔案。
寫在前邊,這篇文章的解決方案不完美,拆了東牆,補了西牆,先不刪,只當我自己參考使用吧,如果以後有機會了,搞個完美的方案。 電腦重灌系統了,順便體驗了一下一個沒用過的eclipse版本。 裝完adt,配好sdk,寫個demo測試下,還可以,介面都一樣,
Selenium中的滑鼠單擊事件
原作者:https://www.cnblogs.com/lingling99/p/5750266.html滑鼠點選操作 滑鼠點選事件有以下幾種型別: 清單 1. 滑鼠左鍵點選 Actions action = new Actions(driver);action.click
客服菜單上下滾動效果實現
saas on() div config jid function IV fig shai 這是html結構 <!-- 客服 --> <div class="service" id="service"> <img src="./ima
WPF Datagrid對滑鼠單擊進行響應,藉助EventSetter
在做的一個c#的專案中發現Datagrid沒辦法直接對滑鼠單擊進行響應, 呼叫MouseDown事件也需要點選某一行第二次才能響應。 所以藉助EventSetter來簡單的實現了一個。 介面部分的程式碼 <DataGrid x:Name="dataGrid" H
等待中loading 菊花圖CSS 效果實現【Antd spin 原始碼實現】
緣起: 今天閒來無事,除錯一個單頁面VUE的效果,94年的開發小哥哥說,讓我給他加個菊花圖...Excuse me? 菊花圖?長這樣麼? 還是?長這樣?簡直讓我腦洞大開。。 其實吶,他說的是這個。。等待狀態,我內心 好了,那怎麼實現吶 第一反應:gif
DataGrid控制元件單擊選中的實現方法
實現的核心技術是使用的javascript步驟一:建立js檔案,如下GridControl.js檔案內容:var Rows=new Array();var ShiftStartRow="";function onfocusit(){iRow=window.event.srcE
選中gridview其中一行單擊刪除按鈕實現行刪除功能
在前端給gridview新增客戶端事件(行點選事件): <ClientSideEvents RowClick="function(s, e) {SetLeftData(s,e);}" /> function SetLeftData(s, e) {
java 焦點在按鈕上鍵盤迴車,等同於滑鼠單擊它
簡單例子import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyTest extends JFrame implements KeyListener,ActionListene
Unity: Unity3D 模擬滑鼠單擊/雙擊
該文來自:http://www.omuying.com/article/123.aspx 功能程式碼: using UnityEngine; using System.Collections; public class MouseResponseManager { p
Objective-C 中singleton(單例模式)的實現
OC中的單例很有意思,因為沒辦法像JAVA或C++中把建構函式設為private的來防止其它人直接 new 一個新物件,所以像如下單例的實現方式,只能祈禱大家必須按你要求的方式建立物件,有人不小心直接 [[ xx alloc] init] 建立一個物件,是很難發現的。 s
QML中滑鼠拖動移動ListView中項的位置
在QML開發中,ListView是我們經常用到的控制元件,可以用它給使用者展示出列表,但是往往都是將專案的顯示順序排好後,直接讓ListView顯示出來,亦或者是知道要移動到具體的那一位置,然後調整資料在ListView中的順序來達到要求,現有一種需求,就是用滑鼠拖動某項,
讓一個按鈕自動觸發,自動執行onclick滑鼠單擊事件. 預設已點選.
這裡我的按鈕是jsp中的一個<a>標籤寫的,下面是定時兩秒預設點選,當然,想直接預設點選的話就直接把方法裡面的毫秒值2000刪除就可以了,也可以自行設定毫秒值進行定時。 <scrip
QT重寫控制元件函式並新增滑鼠單擊事件
重寫QComboBox類 1.在工程中新建一個C++類,命名為myboBox,base的地方填寫QComboBox,緊接著勾選#include QWidget。 2.myboBox檔案中包含標頭檔案#include <QComboBox>嗎,並新增Q_OBJEC
QML中ROW元件的使用方法及示例
ROW其實相當於我們在C++模式下寫的那個水平佈局。就是讓內部控制元件一直排列下去。 首先呢,這佈局中,先新增的在前,後新增的在後,新增方法很簡單,只要這個控制元件被Row包含就行了。 示例中嘗試新增