找回密码
 立即注册
123
返回列表 发新帖
收起左侧
楼主: yafeilinux

第17篇 2D绘图(七)涂鸦板

52
回复
49291
查看
[复制链接]
累计签到:1569 天
连续签到:1 天
2015-9-7 22:39:35 显示全部楼层
阳光风雨夜 发表于 2015-9-7 11:16
有一个判断是if(event->buttons()&Qt:eftButton),这表示鼠标点击后移动,我想问一下为什么括号中只有一 ...

按位与
回复 支持 反对

使用道具 举报

累计签到:12 天
连续签到:1 天
2015-11-23 16:48:55 显示全部楼层
本帖最后由 offffh 于 2015-11-23 16:50 编辑

楼主@yafeilinux ,谢谢你分享的教程。关于这个涂鸦板我有个问题想请教下你:
在加入pushButton去实现放大功能的之后,鼠标左键点击画点的时候,按理说只会画一些点,结果却经常会出现两点相连的情况。这个问题楼上几位也提到过。通过加入适当的qDebug()语句调试后,我发现问题出在有时候mousePressEvent事件触发之后,会莫名其妙导致多次重绘。解决办法我知道,可是为什么会出现这种情况?
这是加入的代码: pushButton = new QPushButton(this);
这是部分应用程序输出:(鼠标按下时,打印lastPoint;鼠标松开时,打印releasePoint;绘图时,打印绘制的线)

draw  QPoint(0,0)  to  QPoint(0,0)
draw  QPoint(0,0)  to  QPoint(0,0)
draw  QPoint(0,0)  to  QPoint(0,0)
lastPoint  QPoint(157,123)
releasePoint:  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
lastPoint  QPoint(168,137)
draw  QPoint(168,137)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
draw  QPoint(157,123)  to  QPoint(157,123)
releasePoint:  QPoint(168,137)
draw  QPoint(157,123)  to  QPoint(168,137)
draw  QPoint(168,137)  to  QPoint(168,137)
draw  QPoint(168,137)  to  QPoint(168,137)





回复 支持 反对

使用道具 举报

累计签到:1569 天
连续签到:1 天
2015-11-23 23:56:33 显示全部楼层
offffh 发表于 2015-11-23 16:48
楼主@yafeilinux ,谢谢你分享的教程。关于这个涂鸦板我有个问题想请教下你:
在加入pushButton去实现放大 ...

这个涂鸦板教程是有一些问题的,你看下 下载 页面那个涂鸦板程序,这个测试在Qt 4.8没有问题。你说的这个问题可以先自己研究下,或者换个Qt版本试试,是不是有同样的现象。
回复 支持 反对

使用道具 举报

累计签到:12 天
连续签到:1 天
2015-11-24 09:48:25 显示全部楼层
yafeilinux 发表于 2015-11-23 23:56
这个涂鸦板教程是有一些问题的,你看下 下载 页面那个涂鸦板程序,这个测试在Qt 4.8没有问题。你说的这个 ...

好吧,先继续学习吧,也许之后回过头来就能发现问题在哪。
回复 支持 反对

使用道具 举报

累计签到:7 天
连续签到:1 天
2016-8-15 11:40:24 显示全部楼层
为什么画图是从(0,0)开始,而且每次画图都会从上一次的结束点继续,怎么回事??

点评

(0,0)是坐标原点,具体你的问题,还是自己通过程序去领悟比较好。  发表于 2016-8-15 15:48
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-8-17 22:12:57 显示全部楼层
楼主 下载版的教程中报错说mainwindow构造函数里PainArea的调用不明确应该怎么解决qwq
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2016-9-8 17:23:26 显示全部楼层
楼主,请问一下,为什么运行后画出来的都是直线,无论按下怎么弯曲滑动,显示出来就是鼠标按下到松开的直线。我用的Qt5.4.0版本,不知道怎么回事?
回复 支持 反对

使用道具 举报

累计签到:1569 天
连续签到:1 天
2016-9-13 15:58:29 显示全部楼层
Lawkpo 发表于 2016-9-8 17:23
楼主,请问一下,为什么运行后画出来的都是直线,无论按下怎么弯曲滑动,显示出来就是鼠标按下到松开的直线 ...

版本问题造成的。
回复 支持 反对

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-12-19 10:29:35 显示全部楼层
嗯嗯 ,学习了!!!
回复 支持 反对

使用道具 举报

累计签到:10 天
连续签到:1 天
2016-12-26 16:13:05 显示全部楼层
请问下楼主,我自己又设置了一个按钮来清空画面,使用的是pix.fill(Qt::white)方法,但是点了清空按钮以后,虽然画面清空了,但是再次点击画布的时候会出来一个小点,这个小点正是清空之前最后鼠标提起的那个点,怎么处理这个点的问题呢,不让这个点在清空以后显示出来
回复 支持 反对

使用道具 举报

累计签到:1569 天
连续签到:1 天
2016-12-26 21:26:03 显示全部楼层
huyixi1995 发表于 2016-12-26 16:13
请问下楼主,我自己又设置了一个按钮来清空画面,使用的是pix.fill(Qt::white)方法,但是点了清空按钮以后 ...

这个可以自己解决,先确定下这个点是怎么出现的,研究下那段代码,然后找出解决办法!
回复 支持 反对

使用道具 举报

累计签到:10 天
连续签到:1 天
2016-12-27 17:46:09 显示全部楼层
yafeilinux 发表于 2016-12-26 21:26
这个可以自己解决,先确定下这个点是怎么出现的,研究下那段代码,然后找出解决办法! ...

好的,就是fill(Qt::white)以后,lastPoint和endPoint一直都还保存着,不知道应该怎么回到程序初始化的那个状态,只要进入了update()方**astPoint和endPoint就一直保存着
回复 支持 反对

使用道具 举报

累计签到:10 天
连续签到:1 天
2016-12-27 17:47:18 显示全部楼层
yafeilinux 发表于 2016-12-26 21:26
这个可以自己解决,先确定下这个点是怎么出现的,研究下那段代码,然后找出解决办法! ...

楼主,我还是自己解决,自己学的还不够,需要努力,谢谢您的帮助!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了