QGraphicsScene中捕捉滑鼠事件
QGraphicsScene和QGraphicsView一般搭配用來製作動畫效果。
而QGraphicsScene和QWidget中的滑鼠事件又不一樣,在QGraphicsView中,據查一般不好處理滑鼠事件,所以用QGraphicsScene來檢測滑鼠的訊號;經過一番查詢資料,終於搞定了。
1,標頭檔案
//QGraphicsScene中使用滑鼠事件
#include <QMouseEvent>
#include <QGraphicsSceneMouseEvent>
#include <QPaintEvent>
#include <QKeyEvent>
class DrivingPage : public QGraphicsScene
{
Q_OBJECT
public:
DrivingPage(const QRectF & sceneRect,QObject *parent = 0);
~DrivingPage();
//需要重寫 宣告滑鼠事件觸發函式
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
}
2,原始檔
void DrivingPage::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
// 如果是滑鼠左鍵按下
if(event->button() == Qt::LeftButton)
{
QGraphicsScene::mousePressEvent(event);//這個函式沒多大用,因為已經檢測到滑鼠左鍵按下事件了
qDebug()<<"mousePressEvent LeftButton" << event->scenePos().x() << event->scenePos().y();//滑鼠的座標點。注意用scenePos()
}
// 如果是滑鼠右鍵按下
else if(event->button() == Qt::RightButton)
{
qDebug()<<"mousePressEvent RightButton" << event->scenePos().x() << event->scenePos().y();
QGraphicsScene::mousePressEvent(event);//
}
}
void DrivingPage::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
qDebug("************mouseMoveEvent*****************");
QGraphicsScene::mouseMoveEvent(event);//感覺和滑鼠按鍵一樣,沒特別大作用,已經檢測到滑鼠座標了scenePos()
}
主要是檢測滑鼠事件,檢測到後根據滑鼠的按鍵和移動、座標等資訊,然後再寫詳細的處理函式。
注:轉載請註明出處。QQQQ
相關文章
- 滑鼠事件事件
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- tkinter中滑鼠與鍵盤事件(十五)事件
- 滑鼠拖拽事件事件
- 滑鼠、鍵盤事件事件
- angular 的滑鼠事件Angular事件
- 監聽滑鼠事件事件
- 事件 滑鼠事件 表單事件 from表單事件
- 『OpenCV-Python』滑鼠事件OpenCVPython事件
- 瀏覽器滑鼠事件瀏覽器事件
- JQuery4:滑鼠事件和滾動事件jQuery事件
- 滑鼠進入移出事件事件
- C#窗體--滑鼠事件C#事件
- 透過滑鼠事件獲取滑鼠位置在3d中的座標mouse/Raycaster事件3DAST
- 1.21 JQuery4:滑鼠事件與滾動事件jQuery事件
- React滑鼠點選事件物件中的幾個用到的屬性React事件物件
- Matlab 實現介面相應滑鼠事件Matlab事件
- Javascript滑鼠滾輪事件相容寫法JavaScript事件
- 舉例說明js滑鼠事件有哪些?JS事件
- Simple WPF: WPF 透明窗體和滑鼠事件穿透事件穿透
- JavaScript和JQuery的滑鼠mouse事件冒泡處理JavaScriptjQuery事件
- JS滑鼠事件完成元素拖拽(簡單-高階)JS事件
- Vue中使用MouseMove事件 獲取滑鼠座標頻率降低或事件卡頓Vue事件
- 怎樣用純CSS實現禁止滑鼠點選事件?CSS事件
- 如何使用 JavaScript 程式碼建立虛擬滑鼠點選事件JavaScript事件
- 禁用input輸入框的滑鼠滾輪事件詳解事件
- bash訊號捕捉
- input捕捉Enter鍵
- PHP捕捉錯誤PHP
- 異常捕捉、抓取
- 前端與移動開發----webAPI----文字框事件,滑鼠事件,標籤屬性操作方式前端移動開發WebAPI事件
- 選中滑鼠附近的文字
- 滑鼠事件css的:hover和js的mouseover有什麼區別?事件CSSJS
- 從零開始, 開發一個 Web Office 套件 (3): 滑鼠事件Web套件事件
- Qt 模擬滑鼠事件-在兩個按鈕之間切換QT事件
- 中興事件事件
- 禁止 div 中的文字被滑鼠選中
- 關於 Linux 中模擬滑鼠Linux