📄 eye.cpp
字号:
/****************************************************************************
** Eye implementation generated from reading ui file 'form.ui'
****************************************************************************/
#include "eye.h"
#include <qvariant.h>
#include <qlayout.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
#include <qimage.h>
#include <qpixmap.h>
#include <qpainter.h>
Eye::Eye( Form* parent, const char* name, WFlags fl )
: Form( parent, name, fl )
{
setGeometry(80, 80, 220, 200);
}
Eye::~Eye()
{
}
void Eye::paintEvent(QPaintEvent* )
{
const int pointarea = 10;
painter = new QPainter;
painter->begin(this);
painter->setPen(QPen(black, 10, QPen::SolidLine));
painter->drawEllipse(10, 10, 100, 100);
painter->drawEllipse(10+100, 10, 100, 100);
painter->drawArc(10+50, 130, 100, 50, 0, -2880);
painter->drawArc(10+95, 130, 10, 10, -720, 4320);
painter->setBrush(white);
painter->drawEllipse(10, 10, 100, 100);
painter->drawEllipse(10+100, 10, 100, 100);
painter->setBrush(black);
painter->drawEllipse(pxleft-5, pyleft-5, pointarea, pointarea);
painter->drawEllipse(pxright-5, pyright-5, pointarea, pointarea);
// setUpdatesEnabled( FALSE );
painter->end();
}
void Eye::mouseMoveEvent( QMouseEvent * e )
{
setMouseTracking(TRUE);
mousepoint = e->globalPos();
positionLeft();
positionRight();
// printf("point.x=%d,point.y=%d\n", mousepoint.x(),mousepoint.y());
update();
}
void Eye::positionLeft()
{
const int originalleft = 60;
const int rleft = 40;
double mx =mousepoint.x()-originalleft;
double my =mousepoint.y()-originalleft;
double originalTomouse =sqrt((mx*mx+my*my));
pxleft =mx/originalTomouse*rleft+originalleft;
pyleft =my/originalTomouse*rleft+originalleft;
}
void Eye::positionRight()
{
const int originalright = 160;
const int rleft = 40;
double mx =mousepoint.x()-originalright;
double my =mousepoint.y()-60;
double originalTomouse =sqrt((mx*mx+my*my));
pxright =mx/originalTomouse*rleft+originalright;
pyright =my/originalTomouse*rleft+60;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -