⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyevent.cpp

📁 Linux窗口程序设计,Qt4精彩实例分析,以循序渐进的方式介绍Qt4开发及其实例子,第一部分
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -