• 6638阅读
  • 1回复

[讨论]求助:如何只对QWidget的局部区域的显示内容更新(已解决) [复制链接]

上一主题 下一主题
离线kummar
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-19
比方说我想在原先有背景图片widget中更新某个局部区域的图片时采用这种方法
void Widget::paniterEvent(QPainterEvent *)
{
     QPainter painter(this);
     painter.drawPixmap(30,30,100,100,newpicture);
}

结果会把整个Widget里的内容擦除,然后在指定区域画上新图片。
请问一个用什么方法可以只对局部区域的显示内容更新,而不影响全局。

问题还是得多查帮助文档啊,
void QWidget::repaint ( int x, int y, int w, int h )
This is an overloaded function.

This version repaints a rectangle (x, y, w, h) inside the widget.

If w is negative, it is replaced with width() - x, and if h is negative, it is replaced width height() - y.

void QWidget::repaint ( const QRect & rect )
This is an overloaded function.

This version repaints a rectangle rect inside the widget.

void QWidget::repaint ( const QRegion & rgn )
This is an overloaded function.

This version repaints a region rgn inside the widget..
[ 此帖被kummar在2011-04-19 11:56重新编辑 ]
离线wxj120bw

只看该作者 1楼 发表于: 2011-04-20
引用楼主kummar于2011-04-19 10:41发表的 求助:如何只对QWidget的局部区域的显示内容更新(已解决) :
比方说我想在原先有背景图片的widget中更新某个局部区域的图片时采用这种方法
void Widget::paniterEvent(QPainterEvent *)
{
     QPainter painter(this);
     painter.drawPixmap(30,30,100,100,newpicture);
.......

这样的帖子才值得顶下 有始有终
快速回复
限100 字节
 
上一个 下一个