资源简介
子类化QLabel显示图片并在label上画矩形截图并显示,..a...d........
代码片段和文件信息
#include “LabelPress.h“
#include
LabelPress::LabelPress(QWidget *parent /*= 0*/ ):QLabel(parent)
{
}
LabelPress::LabelPress(const QString &text QWidget *parent
Qt::WindowFlags f):QLabel(textparentf)
{
}
void LabelPress::init(int id)
{
}
LabelPress::~LabelPress()
{
}
void LabelPress::mousePressEvent(QMouseEvent *e)
{
if(e->button() && Qt::LeftButton){
m_isDown = true;
m_start = e->pos();
m_stop = e->pos();
}
}
void LabelPress::mouseMoveEvent(QMouseEvent *e)
{
if(m_isDown){
m_stop = e->pos();
}
update();
}
void LabelPress::mouseReleaseEvent(QMouseEvent *e)
{
if(e->button() && Qt::LeftButton){
m_isDown = false;
}
}
void LabelPress::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);//先调用父类的paintEvent为了显示‘背景‘!!!
QPainter painter(this);
painter.setPen(QPen(Qt::red2));
if(!m_isDown){
return;
}
painter.drawRect(QRect(m_startm_stop));
QRect selectedRect = getRect(m_start m_stop);
m_capturePixmap = m_loadPixmap.copy(selectedRect);
signalCompleteCature(m_capturePixmap);
if(m_capturePixmap.isNull())qDebug(“isNull“);
}
QRect LabelPress::getRect(const QPoint &beginPoint const QPoint &endPoint)
{
int x y width height;
width = qAbs(beginPoint.x() - endPoint.x());
height = qAbs(beginPoint.y() - endPoint.y());
x = beginPoint.x() < endPoint.x() ? beginPoint.x() : endPoint.x();
y = beginPoint.y() < endPoint.y() ? beginPoint.y() : endPoint.y();
QRect selectedRect = QRect(x y width height);
// 避免宽或高为零时拷贝截图有误;
// 可以看QQ截图,当选取截图宽或高为零时默认为2;
if (selectedRect.width() == 0)
{
selectedRect.setWidth(1);
}
if (selectedRect.height() == 0)
{
selectedRect.setHeight(1);
}
return selectedRect;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-24 16:36 label\
目录 0 2018-06-24 16:46 label\aaa\
文件 1060 2018-06-24 16:35 label\aaa\aaa.pro
文件 18285 2018-06-24 16:46 label\aaa\aaa.pro.user
文件 2016 2018-06-24 16:35 label\aaa\labelpress.cpp
文件 865 2018-06-24 16:35 label\aaa\labelpress.h
文件 183 2018-06-24 16:35 label\aaa\main.cpp
文件 977 2018-06-24 16:35 label\aaa\mainwindow.cpp
文件 485 2018-06-24 16:35 label\aaa\mainwindow.h
文件 1790 2018-06-24 16:35 label\aaa\mainwindow.ui
目录 0 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\
文件 21801 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\Makefile
文件 176183 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\Makefile.Debug
文件 175364 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\Makefile.Release
目录 0 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\
文件 156672 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\aaa.exe
文件 638 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\aaa.exe.em
文件 97 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\aaa.exe_manifest.rc
文件 704 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\aaa.exe_manifest.res
文件 1179108 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\aaa.ilk
文件 4509696 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\aaa.pdb
文件 368404 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\labelpress.obj
文件 339568 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\main.obj
文件 500340 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\mainwindow.obj
文件 4057 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\moc_labelpress.cpp
文件 346535 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\moc_labelpress.obj
文件 3633 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\moc_mainwindow.cpp
文件 344638 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\debug\moc_mainwindow.obj
目录 0 2018-06-24 16:49 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\release\
文件 3479 2018-06-24 16:36 label\build-aaa-Desktop_Qt_5_3_MSVC2013_64bit-Debug\ui_mainwindow.h
相关资源
- Qt实验报告和源代码
- QT多线程实现图片以缩略图形式显示
- QT5下实现基于TCP发送和接接收文件
- Qt 用TCP和UDP传图片
- qtribbon源码
- Qt实现的连连看游戏含源码
- 基本Qt的一笔画小游戏
- 用Qt写的PID仿真程序
- Qt基于tcp和udp局域网聊天工具
- qt制作的虚拟钟表
- Linux下QT及OpenCV搭建
- qt利用线程实现多任务
- 一个能用的mqtt库+测试窗体包括json解
- PyQt5_gpl-5.11.3.zip
- 基于QT的局域网聊天系统附文档
- Qt属性表控件-QtPropertyBrowser
- qt下超强绘图控件 - QCustomPlot
- mqtt源码及文档
- Qt OpenGL 多图片纹理例程
- 资源文件此资源是作者博客教程所用
- Qt绘制频谱
- MQTT 客户端调试工具V1.1
- 嵌入式linux下QT开发 Camera摄像头采集视
- Qt4编写简单的计算器
- qtribbon可用
- Qt编程_数字图像处理
- air202 mqtt 测试程序
- qt5串口简单实现图片、pdf文件的传输
- openCV+qt视频传输
- QT 获取天气
评论
共有 条评论