Qt學習之一,鍵盤事件細節

2021-07-03 22:55:04 字數 2284 閱讀 2639

在這裡小小的抱怨一下,這幾天學到了啥?哈?

在寫之前加上一些小筆記。。。
怎樣獲取combobox中的選定項值, 答:currentindex()

今天老師「講了」乙個小模組,是鍵盤事件,自己感覺比較感興趣的,於是決定把**中的細節搞清楚些。

首先是標頭檔案keyevent.h中的**

#include

#include//鍵盤事件庫引入

#include

class keyevent : public qwidget;

其中
qpixmap *pix:作為乙個繪圖裝置,使用雙緩衝機制實現圖形的繪製

qimage image:介面中間的小圖示設定

int starx、int stary:圖示的左上角頂點位置

int width、int height:介面的寬度和高度

int step:網格的大小,即移動的步進值

然後就是keyevent.cpp的內容

#include

#include

"keyevent.h"

keyevent::keyevent(qwidget *

parent):qwidget(parent)

還有一點就是的位置,在以上**中,位置為../image/image.png在實際操作中,image.png的位置是當前cpp檔案上級資料夾中的image資料夾中…好亂(=。=)

下面是drawpix()函式的實現

drawpix()函式實現了在qpixmap物件上繪製影象,其具體**如下:

void keyevent::drawpix()

for(int j=step;jpainter->begin(pix);

painter->drawimage(qpoint(starx,stary),image);

painter->end();

}

其中
pix->fill(qt::white):重新重新整理pix物件為白色底色

qpainter *painter = new qpainter:建立乙個qpainter物件,並指定pix為繪圖裝置

qpen pen(qt::dotline):建立乙個qpen物件,設定畫筆的線型為qt::dotline,用於繪製網格

for(int i=step;i

void keyevent::keypressevent(qkeyevent *event)

if(event->key()==qt::key_right)//根據按下的右方向調節圖示的左上頂點的位置,進步值為1

if(event->key()==qt::key_up)

if(event->key()==qt::key_down)

}else

//對沒有按下【ctrl】的動作作出處理

if(event->key()==qt::key_right)

if(event->key()==qt::key_up)

if(event->key()==qt::key_down)

if(event->key()==qt::key_home)

if(event->key()==qt::key_end)

}drawpix();//根據調整後的圖示位置重新再pix中繪製影象

update();//觸發介面重畫

}

最後是painevent()介面重畫函式,將pix繪製在介面上

void keyevent::paintevent(qpaintevent *)

其中

qt::keyboardmodifier定義了一系列修飾鍵,如下所示:

qt::nomodifier 沒有修飾鍵按下

qt::shiftmodifier 【shift】鍵按下

qt::controlmodifier 【ctrl】鍵按下

qt::altmodifier 【alt】鍵按下

qt::metamodifier meta鍵按下

qt::keypadmodifier 小鍵盤按鍵按下

qt::groupswitchmodifier mode switch鍵按下

spring boot 之一鍵查詢

精確查詢 查詢結果唯一,所以返回乙個實體類即可 html層 一建查詢按鈕繫結事件,在前台判斷輸入是否為空 function tosearch else function data else controller 跳轉的search方法不能有返回值!否則無跳轉且不報 錯,要out.println,返回...

QT瀏覽器學習之一 QWebView

使用qwebview類只要幾行 就可以做出乙個最簡單的瀏覽器。qwebview的主要功能是用於瀏覽網頁,每個qwebview都包含著乙個qwebpage,而qwebpage是用於儲存和編輯網頁的類。下面是乙個最簡單的瀏覽器了 main.cpp webpage.pro target dependpat...

qt學習之鍵盤事件( keyPressEvent)

最近一直忙於做驅動,對底層東西很是好奇,好奇鍵盤是 怎麼區分每個鍵值的,又是怎麼響應的!因此,就有了下面這些 環境windows 工具qt 語言c 在主窗體類中宣告鍵盤響應函式void keypressevent qkeyevent event 檔案中實現void mainwindow keypre...