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

新作的QGraphicsItem子类update()不更新画面

4
回复
6886
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2017-7-18 18:43:55 显示全部楼层 |阅读模式
5Qter豆
1、继承QGraphicsItem类新做了一个类ItemStatusDispSticky,实现了boundingRect(),shape(),paint()函数。
     在paint()函数里使用drawText()把成员变量的值(字符串,数值,有另外的函数更新这些值)输出到画面上。
2、通过AddItem()添加到继承QGraphicsScene的子类里了。
3、在MainWind(public QMainWindow) 类里设了一个200ms的timer,
     并且在timerEvent()函数里去设ItemStatusDispSticky的显示属性setVisible(true),然后调用更新函数update(QRect(-100, 500, 454, 340))来更新ItemStatusDispSticky类的显示。

希望达到的效果是:ItemStatusDispSticky里的文字信息200ms更新一次。
实际的效果是:ItemStatusDispSticky的文字没有定时更新到画面上,只有我用鼠标的滚轮来放大或缩小画面时文字才被更新。

那位大侠给指导下,为啥update()不更新,然后怎样才能达到我想要的效果。谢谢!

回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2017-7-19 08:45:08 显示全部楼层
俺的豆子不多(昨天发帖时一共才7个,穷!),这个问题已经困扰俺昨天以下午了,qt新手,还请各位大侠给指点迷津!
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2017-7-19 12:00:45 显示全部楼层
上这个论坛的人太少了吗?
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2017-7-19 18:09:58 显示全部楼层
已解决。
原因在于:ItemStatusDispSticky类的boundingRect() 返回的rect太小!同时要在sence里update。
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2017-7-19 18:12:28 显示全部楼层

原因在于:ItemStatusDispSticky类的boundingRect() 返回的rect太小!同时要在sence里update。
已解决。
回复

使用道具 举报

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

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