首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

求教绘图工具中几个功能的Qt实现,该怎么处理

2013-12-26 
求教绘图工具中几个功能的Qt实现以下为win7自带的画图软件求教如何实现红框框标注的功能:复制黏贴剪切 选

求教绘图工具中几个功能的Qt实现
以下为win7自带的画图软件
求教绘图工具中几个功能的Qt实现,该怎么处理

求教如何实现红框框标注的功能:复制黏贴剪切 选择  填充颜色 添加文本 
讲一下实现思路和所用类以及函数就好(如果能写一点例子代码更好)


自己的思路:
对于选择 还真一点思路都没有,应该要用到鼠标事件把?
复制黏贴剪切好像有个类QClipboard,六个函数setText(),setImage()和setPixmap(),text(),image()和pixmap()。
对于填充颜色,好像需要保存已画过的图形的坐标?比如矩形则要保存四个点?然后判断鼠标是否在坐标围成的曲线内,然后调用void QPainter::drawPath ( const QPainterPath & path )
void QPainter::fillPath ( const QPainterPath & path, const QBrush & brush ) 这两个函数么

添加文本  QLineEdit? 鼠标事件,点击,得到点击位置坐标,然后用move函数将editLine移到该坐标,再show出?
[解决办法]
选择的话应该是一个类似于截屏的过程,不过截是画布的屏。当拖动选择的区域的时候可以把选择的画布区域图像截取出来保存起来,并把画布相应的区域画成白色。
你可以看看QMimeData这个类,这个类是在鼠标拖动的时候使用的,它可以设置鼠标拖动的时候鼠标的样式,比如你拖动一个文件时看到的你个小加号,你可以把刚刚截取的那个图片设置到这个类实例中去,qt设计器中的控件拖动就是使用这个方法实现的。
当释放鼠标的时候把图片再画一下就可以了。

对于填充色可能不是使用记录绘制的点就可以的,因为填充颜色是把颜色一样的连续地方都填充的,所以应该是计算出的区域,最后的绘制应该是使用fillPath

热点排行