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

📄 target.cpp

📁 本文件是<精通QT4编程>的配套源代码
💻 CPP
字号:
#include "target.h"#include <QGraphicsScene>#include <QPainter>#include <QStyleOption>#include <QGraphicsSceneContextMenuEvent>#include <QMenu>#include <QAction>#include <math.h>static const double Pi = 3.14159265358979323846264338327950288419717;Target::Target()    : speed(qrand()%10+1), type(qrand()%3), attribute(qrand()%3){    course = (qrand() % 360);    switch(attribute) {    case 0: // 敌方		color.setRgb(255, 0, 0);		break;    case 1: // 我方		color.setRgb(0, 255, 255);		break;    default: // 不明		color.setRgb(255, 255, 0);	break;    }		}QRectF Target::boundingRect() const{    qreal adjust = 0.5;    return QRectF(-20 - adjust, -22 - adjust,                  40 + adjust, 83 + adjust);}void Target::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *){	QPen pen(color);	pen.setWidth(2);    painter->setPen(pen);    switch(type) {    case 0: 	//水面目标 		painter->drawEllipse(-15, -15, 30, 30);    	break;    case 1:  	// 水下目标		painter->drawArc(-15, -15, 30, 30, 180*16, 180*16);    	break;   default:		// 空中目标		painter->drawLine(-15, 0, 0, -15);		painter->drawLine(0, -15, 15, 0);    	break;   }   	painter->drawLine(0, 0, int(speed*5*cos(course)), int(speed*5*sin(course)));}void Target::contextMenuEvent(QGraphicsSceneContextMenuEvent *event){     QMenu menu;     menu.setWindowOpacity(0.8);     QAction *removeAction = menu.addAction(tr("武器发射"));     QAction *markAction = menu.addAction(tr("电子干扰"));     QAction *selectedAction = menu.exec(event->screenPos());} 

⌨️ 快捷键说明

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