直到流萤成飞火 2016-08-15 01:58 采纳率: 0%
浏览 1414

使用QPalette给重写的qpushbutton绘制背景图 程序奔溃

我在重写的qpushbutton中显示opencv调用来的视频图像,图像就奔溃了,然后我加了一个qlabel标签来显示相同的输出图像,程序没用奔溃,说明我生成的qimage是没有问题的,代码如下:

connect(timer,SIGNAL(timeout()),this,SLOT(released()));
void MainWindow::released()
{
Mat frame;
cap>>frame;
if(frame.empty()){
return;
}
cvtColor(frame,frame,CV_BGR2RGB);

QImage image(frame.data,frame.cols,frame.rows,QImage::Format_RGB888);

     label->setPixmap(QPixmap::fromImage(image));
qDebug()<<image.byteCount();
QPalette p;
p.setBrush(QPalette::Button,QBrush(image));
bgp->button(0)->setPalette(p);
update();

}
希望能得到帮助,谢谢

  • 写回答

3条回答 默认 最新

  • dabocaiqq 2016-08-15 02:18
    关注
    评论
  • 直到流萤成飞火 2016-08-15 02:36
    关注

    希望能得到大神的解释,谢谢了

    评论
  • 直到流萤成飞火 2016-08-15 02:37
    关注

    我对代码进行了修改,先保存了qimage,然后用qpalette加载了保存的图片,程序就没有报错了,所以我觉得是数据流解析的问题,修改后的代码。

    connect(timer,SIGNAL(timeout()),this,SLOT(released()));
     void MainWindow::released()
    {
        Mat frame;
        cap>>frame;
        if(frame.empty()){
            return;
        }
        cvtColor(frame,frame,CV_BGR2RGB);
    
        QImage image(frame.data,frame.cols,frame.rows,QImage::Format_RGB888);
        image.save("1.jpg","jpg");
             label->setPixmap(QPixmap::fromImage(image));
        qDebug()<<image.byteCount();
        QPalette p;
        p.setBrush(QPalette::Button,QBrush(QImage("1.jpg")));
          bgp->button(0)->setPalette(p);
        update();
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#javascript#的问题:但是我写的只能接码数字和字符,帮我写一个解码JS问题
  • ¥15 prophet运行报错,如何解决?
  • ¥20 前端数据是从session等作用域拿到的,如何取值继续传递后端呢
  • ¥15 eclipse无法正常运行
  • ¥15 定义了函数,但是无法根据函数定义触发器
  • ¥20 5变量卡诺图化简得出与非门电路图
  • ¥15 Python爬取交通拥堵指数数据
  • ¥15 使用vba抓取重定向网页问题
  • ¥20 付费需求测试程序(细谈)。
  • ¥15 为什么这段c++代码会报这么多语法错误?