网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月24日漏签0天
qt吧 关注:49,960贴子:160,203
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 5回复贴,共1页
<<返回qt吧
>0< 加载中...

问个update 与paintEvent的问题

  • 只看楼主
  • 收藏

  • 回复
  • Atmyeart
  • 活跃吧友
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在下在用QLabel实时显示camera视频
timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(update())); //通过update来调用paintEvent
connect(timer,SIGNAL(timeout()),this,SLOT(rundecoder()));//rundecoder是自定义的槽函数
//timer->start(30);
timer->start(1000);
paintEvent函数如下
void ProcessImage::paintEvent(QPaintEvent *)
{
rs = vd->get_frame((void **)&p,&len);//获取视频的一帧数据,通过p和len传回参数
convert_yuv_to_rgb_buffer(p,pp,VIDEOWIDTH,VIDEOHIGHT/*QWidget::width(),QWidget::height()*/);
frame->loadFromData((uchar *)pp,/*len*/VIDEOWIDTH * VIDEOHIGHT * 3 * sizeof(char)); //frame为一个QImage对象
label->setPixmap(QPixmap::fromImage(*frame,Qt::AutoColor).scaled(640,480,Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
rs = vd->unget_frame();
}
现在问题是:
定时器对自定义的槽函数作用很明显,1s调用一次
但是视频显示不论设置30还是1000,还是10000视频都很流畅,按道理不是应该1s或10s显示一帧吗,应该会明显卡顿的,求解?


  • Atmyeart
  • 活跃吧友
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶顶


2026-04-24 22:18:34
广告
不感兴趣
开通SVIP免广告
  • y16S158785
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主解决没有 能给我解答一下么 我也同是一个问题 v4l2调用摄像头 而且我发现把update那一行注释了 paintEvent还是在自己重绘


  • 端坐霜天3
  • 铁杆吧友
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
QLabel::setPixmap的行为会触发界面重绘,所以实际上界面是在不断刷新的,如果你改成QPainter::drawPixmap可能结果就大不一样了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 5回复贴,共1页
<<返回qt吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示