• 6468阅读
  • 5回复

求助:在QGraphicsView里写paintEvent 为什么画不出来啊 [复制链接]

上一主题 下一主题
离线luhaoting110
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-20
  1. void Graphics_View::paintEvent(QPaintEvent *event)
  2. {
  3.     qDebug()<<"0000000000000";
  4.     QPainter paint(this->viewport());
  5.     paint.setPen(QPen(Qt::green,5));
  6.     if(select_flag && start_draw)
  7.     {
  8.         paint.drawRect(QRect(start_point,end_point));
  9.     }
  10.     paint.drawLine(QPoint(0,0) , QPoint(200,200));
  11.     paint.setBrush(Qt::blue);
  12.     paint.drawEllipse(50,150,400,200);
  13.     QGraphicsView::paintEvent(event);
  14. }

只有打印却没有画这些线和椭圆
离线dbzhang800

只看该作者 1楼 发表于: 2013-05-20

应该不是没画,而是被 QGraphicsView::paintEvent(event); 覆盖了。

题外:
最好不要重写QGraphicsView的paintEvent,而是考虑 QGraphicsScene::drawBackground, QGraphicsScene::drawForeground,或者 QGraphicsItem
离线luhaoting110

只看该作者 2楼 发表于: 2013-05-20
回 1楼(dbzhang800) 的帖子
我就想在 QGraphicsScene::setSelectionArea 的地方画个虚线框,但是发现居然没有paintEvent 才想到去QGraphicsView里面话的
离线luhaoting110

只看该作者 3楼 发表于: 2013-05-20
回 1楼(dbzhang800) 的帖子
版主 又是你啊,版主威武
离线liyoujun

只看该作者 4楼 发表于: 2013-05-21
一楼正解。我实验过的。
离线luhaoting110

只看该作者 5楼 发表于: 2013-05-21
回 1楼(dbzhang800) 的帖子
版主 我用 QGraphicsItem 做发现 会有碰撞的问题,怎么去除我这个选框的碰撞检测啊?
快速回复
限100 字节
 
上一个 下一个