keyevent.cpp
来自「Linux窗口程序设计,Qt4精彩实例分析,以循序渐进的方式介绍Qt4开发及其实」· C++ 代码 · 共 121 行
CPP
121 行
#include "keyevent.h"KeyEvent::KeyEvent(QWidget *parent) :QWidget(parent){ setWindowTitle(tr("Key Event")); setAutoFillBackground(true); QPalette palette = this->palette(); palette.setColor(QPalette::Window,Qt::white); setPalette(palette); setMinimumSize(512,256); setMaximumSize(512,256); width=size().width(); height=size().height(); pix = new QPixmap(width,height); pix->fill(Qt::white); step=32; image.load(":/images/1.png"); startX=0; startY=0; drawPix();}KeyEvent::~KeyEvent(){} void KeyEvent::drawPix(){ pix->fill(Qt::white); QPainter *painter = new QPainter(pix); QPen pen(Qt::DotLine); painter->setPen(pen); for(int i=step;i<width;) { painter->drawLine(QPoint(i,0),QPoint(i,height)); i=i+step; } for(int j=step;j<height;) { painter->drawLine(QPoint(0,j),QPoint(width,j)); j=j+step; } painter->drawImage(QPoint(startX,startY),image);} void KeyEvent::keyPressEvent(QKeyEvent *event){ if(event->modifiers() == Qt::ControlModifier) { if(event->key() == Qt::Key_Left) { startX=(startX-1<0)?startX:startX-1; } if(event->key() == Qt::Key_Right) { startX=(startX+1+image.width ()>width)?startX:startX+1; } if(event->key() == Qt::Key_Up) { startY=(startY-1<0)?startY:startY-1; } if(event->key() == Qt::Key_Down) { startY=(startY+1+image.height()>height)?startY:startY+1; } } else { startX=startX-startX%step; startY=startY-startY%step; if(event->key() == Qt::Key_Left) { startX=(startX-step<0)?startX:startX-step; } if(event->key() == Qt::Key_Right) { startX=(startX+step+image.width()>width)?startX:startX+step; } if(event->key() == Qt::Key_Up) { startY=(startY-step<0)?startY:startY-step; } if(event->key() == Qt::Key_Down) { startY=(startY+step+image.height()>height)?startY:startY+step; } if(event->key() == Qt::Key_Home) { startX=0; startY=0; } if(event->key() == Qt::Key_End) { startX=width-image.width(); startY=height-image.height(); } } drawPix(); update(); } void KeyEvent::paintEvent(QPaintEvent *){ QPainter painter(this); painter.drawPixmap(QPoint(0,0),*pix);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?