• 9291阅读
  • 11回复

QPainter 问题,大家帮忙看看,比较简单的 [复制链接]

上一主题 下一主题
离线yxhappy
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-19
我想在pushbutton上画图,但是就是画不上去。提示信息为QPainter::begin: Paint device returned engine == 0, type: 1
各位帮忙解释下,这个要怎么处理呀?
离线浪漫天使
只看该作者 1楼 发表于: 2009-11-19
方便贴出来你的代码怎么画的么??
或者干脆把工程的包传上来。
离线yxhappy
只看该作者 2楼 发表于: 2009-11-19
我搜索了一下,看到有类似问题的帖子,但是也没找到解决办法,难道没人知道要怎么解决吗?我是在paintevent里画的,但是就是不显示啊,高手指点一下呀,谢谢啦!
离线yxhappy
只看该作者 3楼 发表于: 2009-11-19
我绘制的代码是这样子的,请问浪漫天使,有什么建议不?大家帮帮呀
void NSMapCanvas::paintEvent(QPaintEvent *event)
{

    QPainter zoominpainter(mapview_ui.zoomin);
    zoominpainter.drawImage(0,0,zoomin_image,0,0,zoomin_image.width()/2,zoomin_image.height()/2);
   QPainter zoomoutpainter(mapview_ui.zoomout);
   zoomoutpainter.drawImage(0,0,zoomout_image,0,0,zoomout_image.width()/2,zoomout_image.height()/2);

}
mapview_ui.zoomin和mapview_ui.zoomout是pushbutton,zoomin_image,zoomout_image是已经load的图片。
离线yb824
只看该作者 4楼 发表于: 2009-11-19
我也搜索了以前帖子,大部分都是继承pushbutton,重写paintevent方法
离线浪漫天使
只看该作者 5楼 发表于: 2009-11-19
正如你说的
你应该在 pushbutton的 paintEvent里面画这些东西
而不是在别人的paintEvent里面建立一个pushbutton的画笔画这些东西
离线yxhappy
只看该作者 6楼 发表于: 2009-11-19
谢谢大家,我试试!
离线yxhappy
只看该作者 7楼 发表于: 2009-11-19
想起一个问题,我想换种办法,其实,我只要在pushbutton没按下的时候,显示一张图片,按下去的时候,显示另一张图片,有什么简便一点的办法吗?如果是重载pushbutton的painterevent的话,那我那么多的按钮需要画,图都不一样的,岂不是要重写n个pushbutton的painterevent呀?我试过seticon,但是显示不了
[ 此帖被yxhappy在2009-11-19 15:23重新编辑 ]
离线dbzhang800

只看该作者 8楼 发表于: 2009-11-19
可考虑 qt stylesheet
离线yxhappy
只看该作者 9楼 发表于: 2009-11-19
谢谢楼上,可是我还有个问题,我是在wince下开发的,qt库的经过裁剪的,style都被裁减掉了呢,所以这个办法,我暂时用不了。。。。。
离线yxhappy
只看该作者 10楼 发表于: 2009-11-19
问题可以这么解决,两种方案,一种是可以在pushbutton按下和放开的时候,分别seticon,设置不同的图片。另外一种是重载pushbutton的paintevent,根据条件画不同的图片。谢谢大家!
离线narier
只看该作者 11楼 发表于: 2011-07-19
你之所以会出现那个问题,是因为你开启了两个qDebug,关闭原来的那个,这个就应该可以了
快速回复
限100 字节
 
上一个 下一个