使用QImage 加载图片
使用QPainter显示图片
重载paintEvent(QPaintEvent *)刷新
void MyImg::paintEvent(QPaintEvent *) { printf("paint\n"); QPainter painter(this) ; painter.drawImage(rect(), image); } |
改变背景图片同时刷新:
while(1) { memset((char *)buff, 0, sizeof(buff)); if(recvdata(sockfd,buff,BUFFSIZE)!=0) break; if((buff_image==NULL)||(buff_size==0))//显示前的判断 {printf("error in paintEvent\n");exit(1);} image=image.fromData((uchar *)buff_image,buff_size); widget->update(); printf("update()"); |
大小是buff_size
其它:
/*****************************全局变量用于参数传递*************************************/ #define BUFFSIZE 1024*1024 //帧缓存大小 extern int bba; extern char buff[BUFFSIZE]; //帧缓存 extern char *buff_image; //图像的开始地址 extern int buff_size; //图像的大小 /*****************************全局变量用于参数传递*************************************/ class MyImg : public QWidget { Q_OBJECT public: MyImg(QWidget* parent = 0); ~MyImg(); void paintEvent(QPaintEvent *); }; extern QImage image; extern MyImg * widget; extern QPainter *painter; |