資源簡(jiǎn)介
自己用QT模仿了window下的畫圖軟件,編寫了一個(gè),大部分功能都實(shí)現(xiàn)了

代碼片段和文件信息
#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.所有點(diǎn)的位置
????//?3.總共幾個(gè)點(diǎn)
????//?4.組名?S-shapeIndex
????//?組名
????QString?group?=?QString(“C-%1“).arg(m_circleIndex);
????//?1.圖元的類型
????fd.setValue(QString(“%1/type“).arg(group)m_shapeType);
????//?2.總共幾個(gè)點(diǎn)
????fd.setValue(QString(“%1/ptCount“).arg(group)m_ptArray.size());\
????//?3.具體的點(diǎn)
????int?i;
????for(i?=?0;?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);
}
//?捕捉鼠標(biāo)左鍵按下去
void?CCircle::mousePressEvent(QMouseEvent?*event)
{
????if(m_clickNum?==?0)
????{
????????//?設(shè)置第一個(gè)點(diǎn)
????????m_ptArray.push_back(event->pos());
????????//?假設(shè)這個(gè)時(shí)候第二點(diǎn)和第一個(gè)點(diǎn)重合
????????m_ptArray.push_back(event->pos());
????????//?改變當(dāng)前的繪圖狀態(tài)為正在繪圖當(dāng)中
????????PaintArea::m_curDrawStatus?=?PaintArea::DRAW_STATUS_DRAWING;
????????m_clickNum++;
????}
????else
????{
????????if(m_clickNum?==?1)
????????{
????????????//?設(shè)置第2個(gè)點(diǎn)
????????????m_ptArray[1]?=?event->pos();
????????????//?改變當(dāng)前的繪圖狀態(tài)為準(zhǔn)備繪圖
????????????PaintArea::m_curDrawStatus?=?PaintArea::DRAW_STATUS_PREPARE;
????????????m_clickNum++;
????????}
????????else
????????{
????????????if(m_clickNum?==?2)
????????????{
????????????????if(m_hitCtrlIndex?==?-1)
????????????????{
????????????????????//?改變當(dāng)前的繪圖狀態(tài)為拖動(dòng)或者移動(dòng)
????????????????????PaintArea::m_curDrawStatus?=?PaintArea::DRAW_STATUS_DRAG;
????????????????????//?記錄拖動(dòng)的原始點(diǎn)
????????????????????m_lastDragPoint?=?event->pos();
????????????????}
????????????????else
????????????????{
????????????????????//?改變當(dāng)前的繪圖狀態(tài)為改變圖元狀態(tài)
????????????????????PaintArea::m_curDrawStatus?=?PaintArea::DRAW_STATUS_CHANGE;
????????????????}
????????????}
????????}
????}
}
//?鼠標(biāo)移動(dòng)事件
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;
????????????//?記錄最新的拖動(dòng)點(diǎn)
????????????m_lastDragPoint?=?event->pos();
????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論