• 5591阅读
  • 8回复

绘图问题~! [复制链接]

上一主题 下一主题
离线menglige
 

只看楼主 倒序阅读 楼主  发表于: 2006-12-04
我自己做个了一个看图程序,我想实现在图片上画线的功能,在程序中添加了

。。。。。。
。。。。。。
void MyView::mousePressEvent(QMouseEvent *event)
{
  if (event->button() == Qt::LeftButton)
  {
    lastPoint = event->pos();
    scribbling = true;
  }
}

void MyView::mouseMoveEvent(QMouseEvent *event)
{
  if ((event->buttons() & Qt::LeftButton) && scribbling)
    drawLineTo(event->pos());  
}

void MyView::mouseReleaseEvent(QMouseEvent *event)
{
  if (event->button() == Qt::LeftButton && scribbling)
  {
    drawLineTo(event->pos());
    scribbling = false;
  }
 
}
。。。。。。
。。。。。。
void MyView::drawLineTo(const QPoint &endPoint)
{
  QPainter painter(this);
  painter.setPen(QPen(Qt::blue, 1, Qt::SolidLine, Qt::RoundCap,
    Qt::RoundJoin));
  painter.drawLine(lastPoint, endPoint);  
  lastPoint = endPoint;  
}

为什么还是不能画线呢???
QPainter painter(this);
是不是这里的问题,没有明确画的对象?

如果想实现这个功能应在有什么步骤呢??
请大家帮忙,谢谢。
[ 此贴被XChinux在2006-12-24 09:16重新编辑 ]
离线cavendish

只看该作者 1楼 发表于: 2006-12-04
你要update()呀
离线menglige

只看该作者 2楼 发表于: 2006-12-05
我用update()更新了,可还是显示不出来,可能是我设计思路有问题,附件里是程序代码,帮我看看吧。感激!!!!!!!!!!!!
[ 此贴被menglige在2006-12-05 11:30重新编辑 ]
附件: 画图.rar (8 K) 下载次数:20
离线wangowen

只看该作者 3楼 发表于: 2006-12-05
一般来说,QPainter实现画图,是在paintEvent里面。
离线cavendish

只看该作者 4楼 发表于: 2006-12-05
你在哪里update的?

qt 3有个例子画各种图形的
qt 4里我没找到类似的例子
离线pluto
只看该作者 5楼 发表于: 2006-12-05
Widget 或Dialog或Window等里有个paintEvent你要画什么就在那里画,比如drawLine(begin,end).
你的鼠标可以记录和计算直线两端的点(begin,end),可以在mouseReleaseEvent调用update().
离线litice

只看该作者 6楼 发表于: 2006-12-08
//setCentralWidget(scrollArea);
离线duanliang
只看该作者 7楼 发表于: 2006-12-22
you should subclass the QScrollArea,and write the code in the paintEvent
离线84211698

只看该作者 8楼 发表于: 2008-02-23
我也有同样的问题,有没有人,帮忙解决下
快速回复
限100 字节
 
上一个 下一个