• 5715阅读
  • 6回复

图片显示出现的错误,帮忙分析一下阿 [复制链接]

上一主题 下一主题
离线陈媛媛
 
只看楼主 正序阅读 楼主  发表于: 2007-01-11
下面的程序只显示了一下,就没了。而且没显示图片,请打下帮忙分析一下,不胜感激!
//while(1)
{
buffer=v4lsyn(dev1,i);

repaint();

v4lcapture(dev1);

}

void imageprocess::paintEvent( QPaintEvent * )
{
paint=new QPainter(this);
paint->begin(this);
label = new QLabel(this);
QImage *img=new QImage((unsigned char*)buffer,640,480,8,0,1,QImage::IgnoreEndian);
QPixmap tmp;
tmp=*img;
label->setPixmap(tmp);
fprintf (stderr, "readjusting width to %d\n", *buffer);
paint->end();

}
下面是调试时显示的错误:
QPainter::begin: Painter is already active.
You must end() the painter before a second begin()

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1084981632 (LWP 6669)]
0x0804d70b in imageprocess::paintEvent(QPaintEvent*) (this=0xbfffe540)
at imageprocess.cpp:243
243 fprintf (stderr, "readjusting width to %d\n", *buffer

如果把while 前的//去掉,就完全打不开界面,本人很是疑惑,这个问题也帮忙分一下,
[ 此贴被XChinux在2007-01-12 14:35重新编辑 ]
仁者无敌
离线keisuo

只看该作者 6楼 发表于: 2007-05-11
摄像头采集显示程序:出现的问题,不知道有谁知道
1.在采集图片while (1)循环中,先内存映射得到buffer地址,然后调用重绘制函数repaint时,只有当前应用程序窗口,被其他窗口覆盖后,再把应用程序窗口点击到顶层窗口后,才回重绘制窗口.
2.当调用pixmap.loadFromData((const char*)buffer,(unsigned int )size);
出现错误:aggregate value used where an integer wea expected.
3.当调用pixmap.loadFromData((const char*)buffer,size);
出现错误:unknown second  参数
离线keisuo

只看该作者 5楼 发表于: 2007-05-11
关于loadFromData
你了解么.我使用后老出错
离线keisuo

只看该作者 4楼 发表于: 2007-05-11
我也正在做.有关的资料太少了。我门可以多交流以下,我跟你的程序差不多,单就是出现其他错误
离线keisuo

只看该作者 3楼 发表于: 2007-05-11
用painter 是画到哪了,我要画到 lable上,
我也用正弄这东西,
还有 就是pixmap::loadFromData  用了老出错,不知道你是如何用的呢
离线wangowen

只看该作者 2楼 发表于: 2007-01-12
paint =new QPainter(this);
定义是在paintEvent外了,你将paint定义移到paintEvent函数内部
离线陈媛媛
只看该作者 1楼 发表于: 2007-01-11
label->setPixmap(tmp); 应该是paint->drawImage(5,5,img)
刚才发错了
仁者无敌
快速回复
限100 字节
 
上一个 下一个