Qt Creator中滑鼠鍵盤事件的處理實現自定義滑鼠指標
宣告:本文原創於yafeilinux的百度部落格,http://hi.baidu.com/yafeilinux 轉載請註明出處。 我們前面一直在說訊號,比方說用滑鼠按了一下按鈕,這樣就會產生一個按鈕的單擊訊號,然後我們可以在相應的槽函式裡進行相應功能的設定。其實在按下滑鼠後,程式要先接收到滑鼠按下的事件,然後將這個事件按預設的設定傳給按鈕。可以看出,事件和訊號並不是一回事,事件比訊號更底層。而我們以前把單擊按鈕也叫做事件,這是不確切的,不過大家都知道是什麼意思,所以當時也沒有細分。 Qt中的事件可以在QEvent中檢視。下面我們只是找兩個例子來進行簡單的演示。 1.還是先建立一個Qt4 Gui Application工程,我這裡起名為event。 2.新增程式碼,讓程式中可以使用中文。 即在main.cpp檔案中加入#include 再在下面的主函式裡新增QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); 3.在mainwindow.h檔案中做一下更改。 新增#include 在public中新增兩個函式的宣告 void mouseMoveEvent(QMouseEvent *); void keyPressEvent(QKeyEvent *);4.我們在mainwindow.ui中新增一個Label和一個PushButton,將他們拉長點,因為一會要在上面顯示標語。 5.在mainwindow.cpp中的建構函式裡新增兩個部件的顯示文字。 ui->label->setText(tr("按下鍵盤上的A鍵試試!")); ui->pushButton->setText(tr("按下滑鼠的一個鍵,然後移動滑鼠試試")); 6.然後在下面進行兩個函式的定義。 /*以下是滑鼠移動事件*/ void MainWindow::mouseMoveEvent(QMouseEvent *m) {//這裡的函式名和引數不能更改 QCursor my(QPixmap("E:/Qt/Qt-Creator-Example/event/time.png")); //為滑鼠指標選擇圖片,注意這裡要用絕對路徑,且要用“/”,而不能用“\” QApplication::setOverrideCursor(my); //將滑鼠指標更改為自己設定的圖片 int x = m->pos().x(); int y = m->pos().y(); //獲取滑鼠現在的位置座標 ui->pushButton->setText(tr("滑鼠現在的座標是(%1,%2), 哈哈好玩吧").arg(x).arg(y)); //將滑鼠的位置座標顯示在按鈕上 ui->pushButton->move(m->pos()); //讓按鈕跟隨滑鼠移動 } /*以下是鍵盤按下事件*/ void MainWindow::keyPressEvent(QKeyEvent *k) { if(k->key() == Qt::Key_A) //判斷是否是A鍵按下 { ui->label->setPixmap(QPixmap("E:/Qt/Qt-Creator-Example/event/linux.jpg")); ui->label->resize(100,100); //更改標籤圖片和大小 } } 注意:這兩個函式不是自己新建的,而是對已有函式的重定義,所有函式名和引數都不能改。第一個函式對滑鼠移動事件進行了重寫。其中實現了滑鼠指標的更改,和按鈕跟隨滑鼠移動的功能。 第二個函式對鍵盤的A鍵按下實現了新的功能。 效果如下。
按下滑鼠的一個鍵,並移動滑鼠。 按下鍵盤上的A鍵。 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22785983/viewspace-662983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CSS自定義滑鼠指標CSS指標
- 滑鼠、鍵盤事件事件
- CSS自定義滑鼠指標樣式CSS指標
- 鍵盤控制滑鼠 windows QtWindowsQT
- tkinter中滑鼠與鍵盤事件(十五)事件
- wx處理滑鼠事件事件
- AngularJs 鍵盤事件和滑鼠事件AngularJS事件
- jQuery 事件(一) 滑鼠與鍵盤事件jQuery事件
- CSS自定義滑鼠指標形狀程式碼例項CSS指標
- css自定義滑鼠指標圖示程式碼例項CSS指標
- jquery實現的右鍵滑鼠點選事件jQuery事件
- css Cursor:url()自定義滑鼠指標樣式為圖片CSS指標
- C#實現滑鼠、鍵盤鉤子C#
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- 自定義滑鼠設定-中鍵設定為後退
- js實現的相容所有瀏覽器的滑鼠中鍵滾動事件JS瀏覽器事件
- JavaScript和JQuery的滑鼠mouse事件冒泡處理JavaScriptjQuery事件
- 自定義 IE 滑鼠右鍵彈出式 (轉)
- 獲取滑鼠左鍵點選 creator 3.8
- 電腦鍵盤怎麼代替滑鼠 win10鍵盤代替滑鼠Win10
- 改變滑鼠指標 (轉)指標
- 滑鼠懸浮出現十字架形滑鼠指標指標
- 滑鼠右鍵沒反應怎麼處理 滑鼠右鍵點了沒反應
- jQuery實現的滑鼠滑過連結出現自定義提示效果jQuery
- JavaScript 獲取滑鼠指標座標JavaScript指標
- jQuery獲取滑鼠指標座標jQuery指標
- Android自定義TitleBar 自定義標題欄 並進行事件處理Android事件
- jquery中利用事件屬性which輕鬆獲取鍵盤和滑鼠鍵值jQuery事件
- Mac 鍵盤與滑鼠的對映Mac
- jquery-中的滑鼠事件jQuery事件
- fedora系統怎麼設定滑鼠指標大小?fedora滑鼠指標設定大小的教程指標
- win10滑鼠指標美化設定在哪 修改滑鼠指標樣式的具體方法Win10指標
- 自定義事件相容處理物件事件物件
- 鍵盤滑鼠共享效率工具-Synergy
- Linux 虛擬滑鼠,鍵盤Linux
- c++ 鍵盤/滑鼠互動C++
- QGraphicsScene中捕捉滑鼠事件CSS事件
- 透過滑鼠事件獲取滑鼠位置在3d中的座標mouse/Raycaster事件3DAST