radar.cpp

来自「Qt4源代码,详细介绍了Qt4编程中的范例」· C++ 代码 · 共 54 行

CPP
54
字号
//// C++ Implementation: radar//// Description: ////// Author: zeki <czm@zeki>, (C) 2007//// Copyright: See COPYING file that comes with this distribution////#include <math.h>#include <QtGui>#include "radar.h"#include "target.h"#include "mainwindow.h"RadarView::RadarView( QGraphicsScene * scene, QWidget * parent)	: QGraphicsView(scene, parent){	setMouseTracking(true);	resize(800,600);	startTimer(1000);}void RadarView::timerEvent(QTimerEvent *){	QList<QGraphicsItem *> itemList = items();	QGraphicsItem *item;	foreach(item, itemList)	{		Target* target = (Target*) item;	   	target->setPos(target->mapToParent(target->m_speed * cos(target->m_course), 	   		target->m_speed * sin(target->m_course)));	}}void RadarView::mouseMoveEvent(QMouseEvent *event){	QPoint pos = event->pos();	QPointF scenePos = mapToScene(pos);	MainWindow *mainWin = qobject_cast<MainWindow*>(this->parentWidget());	QString coords = QString("scene coords:x=%1,y=%2;view coords:x=%3,y=%4").		arg((double)scenePos.x()).arg((double)scenePos.y()).arg(pos.x()).arg(pos.y());	if (QGraphicsItem *item = itemAt(event->pos())) {		QPointF itemPos = item->mapFromScene(scenePos);		coords += QString(";item coords:x=%1,y=%2").arg(itemPos.x()).arg(itemPos.y());	}		mainWin->statusBar()->showMessage(coords);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?