• 7496阅读
  • 8回复

关于QPixmap很着急的问题,谢谢 [复制链接]

上一主题 下一主题
离线浪迹江湖
 

只看楼主 倒序阅读 楼主  发表于: 2009-11-19
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QPixmap pixmap(pThread ->data);//pThread ->data是从摄像头设备文件读取的图片信息,通过内存缓冲区拷贝的,pThread ->data为const char*
painter.drawPixmap(0, 0, pixmap.width(), pixmap.height(), pixmap);


pThread每20微秒都传来数据,widget却什么都画不出来,不知道为什么。

是不是QPixmap只能以硬盘上存在的图片QPixmap pixmap(QString filename)为构造函数阿,
我没有找到以const char* 为构造函数参数的实例。
如果是这样,有什么好办法显示出来吗

大家有什么好主意的帮我指点指点,每天就要交了,在此谢过阿
离线浪漫天使
只看该作者 1楼 发表于: 2009-11-19
看来你急看文档也急了。。
你想一步到位。。。。。

下面的函数希望对你有帮助
bool loadFromData ( const uchar * data, uint len, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
bool loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
离线浪迹江湖

只看该作者 2楼 发表于: 2009-11-19
谢谢浪漫天使,我刚才加了如下代码:

QFile file("/tmp/cor6.jpg");
file.open(QIODevice::ReadWrite);
if(-1==file.write(pThread ->data,1024*2048))
{
     qDebug()<<"error";
}
file.close();

QPixmap pixmap("/tmp/cor6.jpg");
painter.drawPixmap(0, 0, pixmap.width(), pixmap.height(), pixmap);

摄像头可以工作了,呵呵,不过每次传来的信息还要事先存到/tmp/cor6.jpg,
再去显示。有一定的延迟
我估计内存里的数据pThread ->data不能直接作为QPixmap构造函数的参数。
找到问题了,上面用QFile的方法还要继续改进,
有新的进步,我会告诉大家,呵呵
离线dbzhang800

只看该作者 3楼 发表于: 2009-11-19
1楼正解
离线mllsdnu

只看该作者 4楼 发表于: 2009-11-19
呵呵,我用的是
QByteArray data;
QPixmap img;
   img.loadFromData(data,"JPG");
   emit receivedImg(img);
测试的还不错
离线浪迹江湖

只看该作者 5楼 发表于: 2009-11-19
最后解决方法如浪漫天使所言,在此谢过了
离线jasoho
只看该作者 6楼 发表于: 2009-11-20
QPixmap很着急的问题,谢谢
我也有Qpixmap很急的问题,我这是哪写错了跑不出我要的结果,
我想要 a图当底图,按滑鼠左健一下 b图局部盖到a图上(b图在前)。
我是qt新手,请不要说的太术语;谢谢~~~~

void PainterWidget::paintEvent(QPaintEvent *event,QMouseEvent *event1)
{
QPainter painter(this);
painter.drawPixmap(0, 0, QPixmap("Q1a.jpg"));
    if(event1->button() == Qt::LeftButton)
     { painter.drawTiledPixmap(150, 170, 185, 25, QPixmap("1a.jpg"));}
}
离线dbzhang800

只看该作者 7楼 发表于: 2009-11-20
你能说一下你这是哪儿来的么??

void PainterWidget::paintEvent(QPaintEvent *event,QMouseEvent *event1)
离线jasoho
只看该作者 8楼 发表于: 2009-11-20
我想用事件 把二个不同的Even 参数 传入同一个函数  写在一起  这样没辨法吗  编譯虽然有过只是图片都没出现
因为我是这工作上需要是蛮急的,有热心人 可以讨论QT4的  方便加MSN 吗交个朋友  即时讨论一下
我的工作内容以后会常用到QT可是我是新手
我贴上我的 好了 tida031@yahoo.com.tw  (这是MSN的)
快速回复
限100 字节
 
上一个 下一个