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

📄 eye.cpp

📁 在linux环境下使用QT编的小程序
💻 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 + -