• 4237阅读
  • 9回复

请教,关于画图 [复制链接]

上一主题 下一主题
离线haoyunp
 
只看楼主 倒序阅读 楼主  发表于: 2013-07-18
想画一个2层的图形,地图为根据采集的gps数据画的地图,顶层图为实时gps数据,原来利用paint画,但是不能分层。怎样分层呢?地图不变,只是更改顶层图,需要用什么画呢?请教。谢谢
离线jdwx

只看该作者 1楼 发表于: 2013-07-18
回 楼主(haoyunp) 的帖子
看一下关于双缓冲的例子。
其实就是画到2个QPixmap上,一个地图,一个gps数据,再把2个QPixmap画到界面上。
这样就可以只修改某个层的数据了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线pxiao_xiao

只看该作者 2楼 发表于: 2013-07-20
用painter一样能定义分层 你得定义一个类 这个类从QObject继承并全面重写鼠标事件 这个类对象的各个事件在你的QWidget相应的事件中被传参调用
离线haoyunp
只看该作者 3楼 发表于: 2013-07-31
回 1楼(jdwx) 的帖子
你好,谢谢,现在想请教个问题。怎样把顶层设置成透明背景。
离线haoyunp
只看该作者 4楼 发表于: 2013-07-31
如果能设置成透明背景的话,怎样清除以前的图形呢?
离线haoyunp
只看该作者 5楼 发表于: 2013-07-31
还有,再paintEvent 函数中,我只想更新顶层的数据,不想更新底层的地图(改变量大才更新),
如果不画底层pixmap,底层图像保存不住,变为默认的灰色,只更新了顶层的数据。怎样解决呢?谢谢了
离线jdwx

只看该作者 6楼 发表于: 2013-07-31
回 3楼(haoyunp) 的帖子
用透明色填充QPixmap,pixmap.fill(QColor(0,0,0,0))背景就是透明的。
至于底层图像保存不住的问题,update的机制就是这样的,擦除重绘。

发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线haoyunp
只看该作者 7楼 发表于: 2013-08-01
pixmap.fill(QColor(0,0,0,0))用这个设计透明背景,程序不知道为什么会退出。改为pixmap.fill(Qt::black)后没问题。

现在我采用pix=pix_bj的办法解决了保存底层图像的问题。
离线haoyunp
只看该作者 8楼 发表于: 2013-08-01
在pix=pix_bj赋值之前,如何清除pix原来的图像呢?
离线haoyunp
只看该作者 9楼 发表于: 2013-08-01
我再pix=pix_bj赋值之前加入语句:pix_bj->fill(Qt::black);
就不会显示原来pix_bj  的图像

如果不加,还会有上一次的图像
快速回复
限100 字节
 
上一个 下一个