绘制部件,部件移动有轨迹问题

Coderec 2012-10-31 09:18:02
大致结构是这样,class tank : public QWidget, class Btank:public tank,
class Gtank:public tank,
class Widget : public QWidget (此为主窗口)


void tank::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawPixmap(QPoint(0,0),*pix);
}


void Btank::draw()
{
QPainter painter(pix); 此处pix为主窗体的QPixmap*
painter.drawImage(QPoint(X,Y),image); 此处图像已加载好

}

以Btank为例,对象每次移动后都调用draw()和update(),但是轨迹还在。。怎么能除去轨迹?
...全文
142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coderec 2012-11-05
  • 打赏
  • 举报
回复
引用 5 楼 a450828540 的回复:
引用 4 楼 allencui0313 的回复:直接调用主窗口的update么? 但是如果这样控件多了会不会闪屏呢。 为啥不把图片放到label里面。。直接移动这个控件呢? 不太理解你的需求。随便猜的。 请问,怎么不使用布局,设置label的位置?然后移动的时候是用哪个函数?网上没看到啊。。
是调用setGeometry()函数吗?
Coderec 2012-11-05
  • 打赏
  • 举报
回复
引用 4 楼 allencui0313 的回复:
直接调用主窗口的update么? 但是如果这样控件多了会不会闪屏呢。 为啥不把图片放到label里面。。直接移动这个控件呢? 不太理解你的需求。随便猜的。
请问,怎么不使用布局,设置label的位置?然后移动的时候是用哪个函数?网上没看到啊。。
  • 打赏
  • 举报
回复
直接Move
  • 打赏
  • 举报
回复
直接调用主窗口的update么?

但是如果这样控件多了会不会闪屏呢。

为啥不把图片放到label里面。。直接移动这个控件呢? 不太理解你的需求。随便猜的。
Coderec 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

主窗口也要重画。
[/Quote]

主窗口有几个对象,不知道怎么能局部重画呢?别把别的对象抹了。。
  • 打赏
  • 举报
回复
先调用update试试 或repaint
jdwx 2012-10-31
  • 打赏
  • 举报
回复
主窗口也要重画。

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧