您当前的位置: 首页 >  qt

lw只吃亿点.

暂无认证

  • 6浏览

    0关注

    47博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt Graphics系列之QGraphicsObject自定义图元

lw只吃亿点. 发布时间:2022-01-02 23:49:35 ,浏览量:6

自定义图元
  1. 需要自定义图元类且继承QGraphicsObject
  2. 自定义类中需要实现如下两个函数(由于)
//绘制函数,在该函数中绘制自定义图元,该函数在窗口变化时调用(窗口大小改变、窗口最大化、最小化,还原时调用)
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
//参数解释
//painter:画家对象,使用该对象绘制需要绘制的图形,当需要绘制多种图案时,直接在使用该变量绘制其他图形即可
//option:目前我还没使用
//widget:可通过该变量获取所绘制区域的大小,从而实现图元的自适应

//返回一个QRectF对象,可在paint中获取该函数的返回值设置所绘图的大小(当该函数无返回值时,在paint中绘制的图案无法绘制/显示,本人测试是这样的)
QRectF boundingRect() const;

3.使用方法 new一个自定义图元类,然后用QGraphicsScene对象的addItem函数即可显示图像

boundingRect()函数是一个特别蛮特殊的函数,其返回的QRectF和绘制区域相关,若绘制不正确则会导致绘制图元异常(拖动滚动条到某一位置时图元消失;拖动滚动条再拖回时图元不会重绘)

当boundingRect返回值设置不当时: 在我测试的时候,就算其中返回的参数值为变量值,该变量值也不能改变,否则当滚动条存在且拖动滚动条碰到图元/越过图元,再将滚动条拖回原来的位置时,是不会自动调用paint()函数的(可以主动调用scene的update函数实现更新)。

友情提示——哪里看不懂可私哦,让我们一起互相进步吧 (创作不易,请留下一个免费的赞叭 谢谢 ^o^/)

注:文章为作者编程过程中所遇到的问题和总结,内容仅供参考,若有错误欢迎指出。 注:如有侵权,请联系作者删除

关注
打赏
1654352885
查看更多评论
立即登录/注册

微信扫码登录

0.1112s