資源簡(jiǎn)介
可以實(shí)現(xiàn)基本涂鴉功能并且可以繪制矩形,橢圓,直線等基本圖形并進(jìn)行縮放,移動(dòng)和填充

代碼片段和文件信息
#include?“canvas.h“
#include?
#include
canvas::canvas()
{
????Pixmap?=QPixmap(500400);?//畫布的初始化大小設(shè)為500*400
????backColor=Qt::white;
????Pixmap.fill(backColor);//畫布初始化背景色使用白色
????/*各標(biāo)志量初始化*/
????//px1=py1=px2=py2=0;
????shape_flage=0;
????ismoving=0;
????ischoose=0;
????iszooming=0;
????isfilling=0;
????modified=0;
????pen_Color=“黑色“;
????brush_Color=“白色“;
}
/*設(shè)置填充顏色*/
void?canvas::setBrushColor(QString?color)
{
????brush_Color=color;
}
/*設(shè)置畫筆顏色*/
void?canvas::setpenColor(QString?color)
{
???pen_Color=color;
}
/*保存畫布*/
bool?canvas::savePixmap(const?QString?&fileName?const?char?*fileFormat)
{
????QPixmap?visiblePixmap=Pixmap;
????if?(visiblePixmap.save(fileName?fileFormat))???//實(shí)現(xiàn)文件存儲(chǔ)
????{
????????modified=0;//畫布改變標(biāo)識(shí)變量置0
????????return?1;
????}
????else
????{
????????return?0;
????}
}
/*判斷畫布是否改變*/
?bool?canvas::get_modified()
?{
?????return?modified;
?}
?/*重繪函數(shù)*/
void?canvas::paintEvent(QPaintEvent?*event)
{
????QPainter?pp(this);
????pp.drawPixmap(00Pixmap);//以為(00)原點(diǎn)畫出Pixmap上的內(nèi)容
}
/*鼠標(biāo)按下事件*/
void?canvas::mousePressEvent(QMouseEvent?*event)
{
????/*如果按下左鍵則將該店位置坐標(biāo)傳給起始坐標(biāo)*/
????if(event->button()==Qt::LeftButton)//鼠標(biāo)按下左鍵
????{
????????begin=event->pos();//該點(diǎn)坐標(biāo)賦給begin
????????if(ismoving==0&&iszooming==0)//如果進(jìn)行繪畫功能
??????????{
???????????set_shape_point(SPbegin.x()begin.y()begin.x()begin.y()shape_flage);//將該點(diǎn)信息存入SP
???????????ShapePoint.push_back(SP);//將SP存入容器尾部
??????????}
????????if(ismoving==1||iszooming==1)//移動(dòng)或縮放操作
??????????{
????????????shape_num=choose_shape(begin);//選擇要移動(dòng)的圖形并將位置信息賦值給shape_num
????????????if(ischoose==1)//如果選中圖形
????????????{
???????????????/*將起點(diǎn)坐標(biāo)賦給px1*/
???????????????px1=ShapePoint[shape_num].p1x;
???????????????py1=ShapePoint[shape_num].p1y;
???????????????/*將終點(diǎn)坐標(biāo)賦給px2*/
???????????????px2=ShapePoint[shape_num].p2x;
???????????????py2=ShapePoint[shape_num].p2y;
????????????}
????????}
????????/*對(duì)圖形進(jìn)行填充*/
????????if(isfilling==1)
?????????{
????????????shape_num=choose_shape(begin);//選擇填充的圖形
????????????if(ischoose==1)
????????????{
????????????????ShapePoint[shape_num].Bcolor=brush_Color;//將填充顏色賦給Bcolor
????????????????draw();//繪畫
????????????}
?????????}
?????}
}
/*鼠標(biāo)移動(dòng)事件*/
void?canvas::mouseMoveEvent(QMouseEvent?*event)
{
???if(event->buttons()&Qt::LeftButton)
?????{
???????if(ismoving==0&&iszooming==0&&shape_flage==0)//繪制普通圖形
????????{
???????????/*將該點(diǎn)坐標(biāo)存到容器中,其中終點(diǎn)與起點(diǎn)相同*/
????????????end=event->pos();
????????????set_shape_point(SPend.x()end.y()end.x()end.y()shape_flage);
????????????ShapePoint.push_back(SP);
????????}
????????if(ismoving==0&&iszooming==0&&shape_flage!=0)//繪制特殊圖形
??????????{
????????????/*將該點(diǎn)坐標(biāo)存到容器中,其中終點(diǎn)與起點(diǎn)相同*/
??????????????end=event->pos();
??????????????set_shape_point(SPbegin.x
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-06-21?02:55??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\
?????文件???????11073??2014-06-21?02:17??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\canvas.cpp
?????文件????????2964??2014-06-21?02:03??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\canvas.h
?????文件?????????389??2014-06-20?11:24??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\d.pro
?????文件???????18900??2014-06-21?02:55??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\d.pro.user
?????文件?????????566??2014-06-16?23:25??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\ellipse.cpp
?????文件?????????522??2014-06-16?17:39??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\ellipse.h
?????文件?????????486??2014-06-16?12:32??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\icon.qrc
?????目錄???????????0??2014-06-21?02:25??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\
?????文件????????1028??2009-10-16?18:37??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\clear.png
?????文件?????????928??2009-10-16?18:37??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\exit.png
?????文件?????????822??2005-12-30?20:46??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\left.bmp
?????文件????????1038??2009-10-16?18:37??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\new.png
?????文件?????????854??2009-10-16?18:37??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\open.png
?????文件?????????822??2005-12-30?20:46??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\right.bmp
?????文件?????????246??2002-01-13?09:42??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\save.bmp
?????文件?????????246??2002-01-13?09:42??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\saveas.bmp
?????文件?????????246??1999-11-20?10:49??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\select.bmp
?????文件????????1332??2009-09-22?13:43??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\zoom-in.png
?????文件????????1266??2009-09-22?13:43??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\images\zoom-out.png
?????文件?????????592??2014-06-16?17:39??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\line.cpp
?????文件?????????456??2014-06-16?17:39??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\line.h
?????文件?????????295??2014-06-19?23:32??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\main.cpp
?????文件????????5323??2014-06-21?00:21??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\mainwindow.cpp
?????文件????????1577??2014-06-21?00:21??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\mainwindow.h
?????文件????????8584??2014-06-20?17:32??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\mainwindow.ui
?????文件?????????753??2014-06-16?17:43??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\rectangle.cpp
?????文件?????????710??2014-06-16?17:39??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\rectangle.h
?????文件?????????492??2014-06-16?17:41??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\shape.cpp
?????文件?????????461??2014-06-17?23:04??06_12弘深_20125079李杰_20125074段廣晗_20124499肖垚?2\shape.h
- 上一篇:無線充電 規(guī)格書
- 下一篇:docx
評(píng)論
共有 條評(píng)論