资源简介
自己用QT模仿了window下的画图软件,编写了一个,大部分功能都实现了

代码片段和文件信息
#include “circle.h“
#include “paintarea.h“
int CCircle::m_circleCount = 0;
CCircle::CCircle()
{
m_circleCount++;
m_circleIndex = m_circleCount;
m_shapeType = PaintArea::MENU_STATUS_CIRCLE_2;
}
void CCircle::drawInfo(QPainter &pt)
{
}
// 保存接口
void CCircle::save(QSettings &fd)
{
// 1.图元的类型
// 2.所有点的位置
// 3.总共几个点
// 4.组名 S-shapeIndex
// 组名
QString group = QString(“C-%1“).arg(m_circleIndex);
// 1.图元的类型
fd.setValue(QString(“%1/type“).arg(group)m_shapeType);
// 2.总共几个点
fd.setValue(QString(“%1/ptCount“).arg(group)m_ptArray.size());\
// 3.具体的点
int i;
for(i = 0; i< m_ptArray.size();i++)
{
fd.setValue(QString(“%1/pt%2“).arg(group).arg(i)
m_ptArray[i]);
}
}
void CCircle::load(QSettings &fd)
{
}
void CCircle::drawShape(QPainter &pt)
{
// 求出半径
m_radius = qSqrt(
(m_ptArray[1].y() - m_ptArray[0].y())*(m_ptArray[1].y() - m_ptArray[0].y())
+
(m_ptArray[1].x() - m_ptArray[0].x())*(m_ptArray[1].x() - m_ptArray[0].x())
);
pt.drawEllipse(m_ptArray[0]m_radiusm_radius);
}
// 捕捉鼠标左键按下去
void CCircle::mousePressEvent(QMouseEvent *event)
{
if(m_clickNum == 0)
{
// 设置第一个点
m_ptArray.push_back(event->pos());
// 假设这个时候第二点和第一个点重合
m_ptArray.push_back(event->pos());
// 改变当前的绘图状态为正在绘图当中
PaintArea::m_curDrawStatus = PaintArea::DRAW_STATUS_DRAWING;
m_clickNum++;
}
else
{
if(m_clickNum == 1)
{
// 设置第2个点
m_ptArray[1] = event->pos();
// 改变当前的绘图状态为准备绘图
PaintArea::m_curDrawStatus = PaintArea::DRAW_STATUS_PREPARE;
m_clickNum++;
}
else
{
if(m_clickNum == 2)
{
if(m_hitCtrlIndex == -1)
{
// 改变当前的绘图状态为拖动或者移动
PaintArea::m_curDrawStatus = PaintArea::DRAW_STATUS_DRAG;
// 记录拖动的原始点
m_lastDragPoint = event->pos();
}
else
{
// 改变当前的绘图状态为改变图元状态
PaintArea::m_curDrawStatus = PaintArea::DRAW_STATUS_CHANGE;
}
}
}
}
}
// 鼠标移动事件
void CCircle::mouseMoveEvent(QMouseEvent *event)
{
switch(PaintArea::m_curDrawStatus)
{
case PaintArea::DRAW_STATUS_PREPARE:
break;
case PaintArea::DRAW_STATUS_DRAWING:
m_ptArray[1] = event->pos();
break;
case PaintArea::DRAW_STATUS_DRAG:
{
QPoint spanPt = event->pos() - m_lastDragPoint;
m_ptArray[0] += spanPt;
m_ptArray[1] += spanPt;
// 记录最新的拖动点
m_lastDragPoint = event->pos();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-09-19 18:05 draw\
目录 0 2016-09-18 23:38 draw\build-draw-未命名-Debug\
文件 5958 2016-09-18 23:18 draw\build-draw-未命名-Debug\Makefile
文件 7726 2016-09-18 23:18 draw\build-draw-未命名-Debug\Makefile.Debug
文件 7885 2016-09-18 23:18 draw\build-draw-未命名-Debug\Makefile.Release
目录 0 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\
文件 448476 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\circle.o
文件 4133597 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\draw.exe
文件 462775 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\line.o
文件 276975 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\main.o
文件 496340 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\mainpaint.o
文件 4293 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\moc_mainpaint.cpp
文件 295935 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\moc_mainpaint.o
文件 2526 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\moc_paintarea.cpp
文件 296687 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\moc_paintarea.o
文件 473763 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\paintarea.o
文件 3016204 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\qrc_res.cpp
文件 590951 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\qrc_res.o
文件 460308 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\rectangle.o
文件 411468 2016-09-18 23:38 draw\build-draw-未命名-Debug\debug\shape.o
文件 211 2016-09-18 23:18 draw\build-draw-未命名-Debug\ob
文件 231 2016-09-18 23:18 draw\build-draw-未命名-Debug\ob
目录 0 2016-09-19 18:09 draw\build-draw-未命名-Debug\release\
文件 13734 2016-09-18 23:38 draw\build-draw-未命名-Debug\ui_mainwin.h
文件 3057 2016-09-18 23:38 draw\build-draw-未命名-Debug\ui_paint.h
文件 4860 2016-09-02 09:21 draw\circle.cpp
文件 852 2016-09-02 08:54 draw\circle.h
文件 372 2016-09-18 23:18 draw\draw.pro
文件 13096 2016-09-19 18:05 draw\draw.pro.user
目录 0 2016-08-30 17:35 draw\image\
文件 1012 2016-08-07 21:53 draw\image\arc.png
............此处省略42个文件信息
相关资源
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- QT酷炫界面开发指南《QmlBook》
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
- 基于QT的黑白棋游戏设计和实现
评论
共有 条评论