void RoboPointItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(widget) Q_UNUSED(option) if(painterok) { painter->drawPixmap(boundingRect().x(),boundingRect().y(),pixmap); return; } painter->begin(&pixmap); painter->setRenderHint(QPainter::Antialiasing, true); painter->setPen(pen); for each (auto item in MapAllPoint) { painter->drawPoint(QPointF(item.x,item.y)); } painter->setPen(MapPen); painter->setBrush(MapBrush); painter->drawRect(BoundingRect.adjusted(-20, -20, 20, 20)); painter->fillRect(BoundingRect.adjusted(-20, -20, 20, 20), QColor(15, 15, 15, 35)); painter->end(); painterok = true; } 博主我这样写的,第一次绘制可以,等到再次跟新的时候就不行了这个就不显示了,因为这个只是点,还有线啊什么的,只显示线了
博主你好,问个问题,Qt的绘图优化问题,QGraphicsItem重写了paint函数,绘制大量的点构成的地图,我写的一个橡皮檫是继承QGraphicsRectItem的,这是paint的内容 void RoboPointItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->setRenderHint(QPainter::Antialiasing, true); painter->setPen(pen); for each (auto item in MapAllPoint) { painter->drawPoint(QPointF(item.x,item.y)); }//这个还能怎么优化吗 painter->setPen(MapPen); painter->setBrush(MapBrush); painter->drawRect(BoundingRect.adjusted(-20, -20, 20, 20)); painter->fillRect(BoundingRect.adjusted(-20, -20, 20, 20), QColor(15, 15, 15, 35)); }
博主好,记得以前博文是不收费的,现在收费了可以理解,刚刚购买了专栏,问问博主,能不能提供一下工程源码,只要自定义界面的那个CustomWindow的源码,谢谢。邮箱:1216950208@qq.com
如何购买OSGI for C++ - 通往架构师之路课程
662
社区成员
253,728
社区内容
加载中
试试用AI创作助手写篇文章吧