找回密码
 立即注册
收起左侧

请问,点击一个按钮,添加一条线段,怎么做?

7
回复
7260
查看
[复制链接]
累计签到:134 天
连续签到:1 天
来源: 2016-5-19 21:57:18 显示全部楼层 |阅读模式
5Qter豆
用painter.drawLine();函数好像一定要放在paintEvent()里,不能放在按钮点击槽函数里。。。请教大神,非常感谢!

最佳答案

查看完整内容

有什么不行的。你建一个QList,每点击一次就把一条新的线段加到QList,然后调用update() 在paintEvent里循环画QList里保存的线就可以了,肯定可以的
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2016-5-19 21:57:19 显示全部楼层
草根zwy 发表于 2016-5-20 13:17
不行

有什么不行的。你建一个QList,每点击一次就把一条新的线段加到QList,然后调用update() 在paintEvent里循环画QList里保存的线就可以了,肯定可以的
回复

使用道具 举报

累计签到:595 天
连续签到:1 天
2016-5-20 08:52:15 显示全部楼层
在paintevent里面做判断,判断的条件来自你的按钮就可以了

点评

不行  详情 回复 发表于 2016-5-20 13:17
对哦,我试一下  详情 回复 发表于 2016-5-20 12:26
回复

使用道具 举报

累计签到:134 天
连续签到:1 天
2016-5-20 12:26:55 显示全部楼层
sywh 发表于 2016-5-20 08:52
在paintevent里面做判断,判断的条件来自你的按钮就可以了

对哦,我试一下                                                            
回复

使用道具 举报

累计签到:134 天
连续签到:1 天
2016-5-20 13:17:49 显示全部楼层
sywh 发表于 2016-5-20 08:52
在paintevent里面做判断,判断的条件来自你的按钮就可以了

不行                                                   

点评

什么不行,我整个屏幕的点都通过这种方式画出来了  详情 回复 发表于 2016-5-21 12:41
有什么不行的。你建一个QList,每点击一次就把一条新的线段加到QList,然后调用update() 在paintEvent里循环画QList里保存的线就可以了,肯定可以的  详情 回复 发表于 2016-5-21 09:36
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-5-21 00:39:50 显示全部楼层
我倒是有个方法可以勉强用一下,你的button连接一个槽函数,在这个槽函数中更改一个变量i的值为1,然后,update(),再然后,你在paintEvent中判断一下i是否为1,是的话,划线,然后将i赋值为0,不是的话,跳过。这个方法可以防止某些事件调用了update()后,导致你没有点button就划线了。这两天我也在搞这件事,亲测可用
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-5-21 01:38:11 显示全部楼层
你构造一个槽函数:
func()
{
    int i=1;
    update();然后,将其与button连接,在paintevent中,判断i是否为1,是的话就划线,否的话跳过。这样可以防止其他事件调用update(),莫名其妙乱划线
回复

使用道具 举报

累计签到:595 天
连续签到:1 天
2016-5-21 12:41:59 显示全部楼层
草根zwy 发表于 2016-5-20 13:17
不行

什么不行,我整个屏幕的点都通过这种方式画出来了
回复

使用道具 举报

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

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