qt中在QLabel上显示图像并画矩形框。
最主要的是重写paintEvent()函数,下面直接看代码
mylabel.h
# pragma execution_character_set("utf-8")#ifndef MYLABEL_H
#define MYLABEL_H
#include <list>
#include <map>
#include<QLabel>
#include<QPoint>
#include<QMouseEvent>
#include<QPainter>
#include<QWidget>
#include<QDebug>
#include<iostream>
#include<QString>
#include<QImage>using namespace std;
#define WIDTH 640
#define HEIGHT 360class MyLabel : public QLabel
{Q_OBJECT
public:MyLabel(QWidget *parent = 0);protected:void paintEvent(QPaintEvent *event);private slots :void slotGetOneFrame(QImage img);private:QImage wb_Image;
};#endif // MYLABEL_H
mylabel.cpp
#include "mylabel.h"MyLabel::MyLabel(QWidget *parent):QLabel(parent)
{
}//接收sig_GetOneFrame信号,调用update在界面中显示图像
void MyLabel::slotGetOneFrame(QImage img)
{wb_Image = img;update(); //调用update将执行 paintEvent函数
}void MyLabel::paintEvent(QPaintEvent *event)
{QLabel::paintEvent(event);//画出图像QPainter painter(this);if (wb_Image.size().width() <= 0) return;///将图像按比例缩放成和窗口一样大小QImage img = wb_Image.scaled(QSize(WIDTH, HEIGHT), Qt::IgnoreAspectRatio);int x = this->width() - img.width();int y = this->height() - img.height();painter.drawImage(QPoint(x, y), img); // 画矩形框QPainter paint;paint.begin(this);paint.setPen(QPen(Qt::red, 1, Qt::SolidLine, Qt::RoundCap));paint.drawRect(QRect(50, 50, 200, 200));QString strText = QString::fromLocal8Bit("用双手成就你的梦想");;paint.drawText(250, 50, strText);paint.end();
}
其中用到了信号槽,大家注意到头文件中
private slots :void slotGetOneFrame(QImage img);
这是槽函数,还需要一个信号函数,需要在解码类中声明,此函数不需要实现。
signals:void sig_GetOneFrame(QImage img);
然后初始化时连接信号槽即可:
m_VideoDecode = new CDemuxingDecoding;connect(m_VideoDecode, SIGNAL(sig_GetOneFrame(QImage)), ui.showCurrentPicLabel, SLOT(slotGetOneFrame(QImage)));
qt中在QLabel上显示图像并画矩形框。相关推荐
- Qt实现在QLabel上显示图片并进行线条/矩形框/多边形的绘制
文章目录 前言 一.事件过滤器 二.示例完整代码展示 三.下载链接 总结 前言 本文主要讲述了使用QPainter在QLabel上进行图片的显示,并使用事件过滤器让QLabel捕获QEvent::Pa ...
- qt5设置linux系统时间,Qt中使用QLabel显示时间的两种方法
Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已. main.cpp #include "displaytime.h" #include int main( ...
- Qt中的QLabel组件
文章目录 1 QLabel组件 1.1 QLabel简介 1.2 图片自适应 QLabel 的大小 1 QLabel组件 1.1 QLabel简介 QLabel组件: QLabel用于显示一个提示性的 ...
- QT中利用Qlabel显示当前的时间:年-月-日-时-分-秒-星期
一.第一步初始化 QTimer *timer_calendar;//用来显示当前日期的定时器timer_calendar = new QTimer(this);//new一个QTimer对象conne ...
- Qt中如何设置label字体居中
Qt 可以做什么? Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部:Qt 除了可以绘制漂亮的界面(包括控件.布局.交互),还包含很多其它功能,比如多线程.访问 ...
- QT 中使用 OpenCv 的 CascadeClassifier 报错
问题 在 QT 中调用 OpenCv 的 CascadeClassifier 进行人脸框检测的时候,在构造函数中进行检测器的初始化,随后调用相机读取图片的时候就会报错,报的错误是 Segment Fa ...
- 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
- Qt 实现QT控件中的QLabel显示图片并自适应显示
一.需求 实现QT控件中的QLabel显示图片,并自适应显示. 二.代码 QImage Image; Image.load(":/image/image/logo.jpg"); Q ...
- QT中QLabel的常见使用方法
QLabel标签控件在QT中算是比较常见的,它一般都是用来显示文本内容,当然它的功能不是只局限在这里,还可以用它来显示照片,gif动画等,那接下来就看看是如何操作它的吧: 首先先创建一个新项目,在ui ...
最新文章
- 配置管理小报111106:在wincvs中查找文件
- 数据结构 —— 为结构体内变量赋值
- 【Android NDK 开发】Kotlin 语言中使用 NDK ( 创建支持 Kotlin 的 NDK 项目 | Kotlin 语言中使用 NDK 要点 | 代码示例 )
- 如何动态调用WebServices
- 关于范围for语句的使用
- python海龟图画龙珠_火影,海贼王,七龙珠,还在为漫画书发愁!我用Python一键生成电子漫画书...
- 你不知道的Chrome调试技巧
- php 随机几率,php实现根据概率配置随机抽奖
- 聊聊spring for kafka对consumer的封装与集成
- 下载centos(阿里云)
- 最火的编程语言和开源项目,跟你想的一样吗?
- visio付款流程图_visio流程图软件
- 计算机视觉方向开题,机器视觉开题报告.doc
- Python常用标准库、模块
- 2022-2027年中国暖气片行业市场全景评估及发展战略规划报告
- OSChina 周五乱弹 —— 有一个朝代红薯不能去
- nit报名费用计算机基础,2015年NIT计算机应用基础考试:Windows基本操作(Windows 7)...
- 计算机主板系统安装系统安装系统,重装系统_系统重装_电脑重装系统【步骤|图文教程】-太平洋IT百科手机版...
- 为什么说HashSet是无序的
- Java简单搭建免签个人支付宝当面付收款接口,无需挂APP,官方接口无风险
热门文章
- 三菱PLC CCD控制ST程序 本PLC程序中CCD控制用的ST结构化语言,程序都有注释
- 启动mongo数据库
- 13. 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
- 一文解读时间序列基本概念
- 热乎乎的蚂蚁金服面经分享,offer已到手建议收藏(Java岗、附答案解析)
- Aidlux实践-快速实现街道人流量统计系统
- 【无标题】基于javaweb、java的管理系统毕设计与实现怎样选题思路分享
- 联想小新15用什么C语言程序,长处更长 优点更优 联想小新Air 15 2019首测
- 移动端1px边框实现
- python数据集处理一些方法备份(长期更新)