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
相關文章
- jquery-中的滑鼠事件jQuery事件
- js 事件冒泡 事件代理 事件捕捉 this指標 bind thisJS事件指標
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- ALV中滑鼠雙擊事件事件
- 滑鼠事件事件
- tkinter中滑鼠與鍵盤事件(十五)事件
- 滑鼠拖拽事件事件
- angular 的滑鼠事件Angular事件
- 監聽滑鼠事件事件
- 滑鼠、鍵盤事件事件
- 事件 滑鼠事件 表單事件 from表單事件
- javaScript事件(五)事件型別之滑鼠事件JavaScript事件型別
- AngularJs 鍵盤事件和滑鼠事件AngularJS事件
- jQuery 事件(一) 滑鼠與鍵盤事件jQuery事件
- 滑鼠中鍵滾動mousewheel事件例項程式碼事件
- 再問applet中的滑鼠事件問題!!APP事件
- wx模擬滑鼠事件事件
- wx處理滑鼠事件事件
- 禁止滑鼠點選事件事件
- JavaScriptFAQ(十四)——滑鼠事件(一)JavaScript事件
- Qt Creator中滑鼠鍵盤事件的處理實現自定義滑鼠指標QT事件指標
- JQuery4:滑鼠事件和滾動事件jQuery事件
- 滑鼠進入移出事件事件
- C#窗體--滑鼠事件C#事件
- [VC] 滑鼠事件的響應事件
- css禁用滑鼠點選事件CSS事件
- 1.21 JQuery4:滑鼠事件與滾動事件jQuery事件
- 相容所有瀏覽器的js滑鼠中鍵滾動事件瀏覽器JS事件
- JavaScript進階系列07,滑鼠事件JavaScript事件
- Sql 2012中利用擴充套件事件(Xevents)捕捉高消耗SQL查詢SQL套件事件
- React滑鼠點選事件物件中的幾個用到的屬性React事件物件
- Javascript滑鼠滾輪事件相容寫法JavaScript事件
- css取消滑鼠事件程式碼例項CSS事件
- 關於滑鼠hover事件及延時事件
- Dos下的滑鼠完全控制類 --- 使用它可以很好的控制你的Dos程式中的滑鼠事件! (轉)事件
- 在shell中捕捉訊號的命令(轉)
- js實現的相容所有瀏覽器的滑鼠中鍵滾動事件JS瀏覽器事件
- Matlab 實現介面相應滑鼠事件Matlab事件