QPixmap::grapWindow(winID) 存放一个图片
QDesktopWidget 获得当前程序所在窗口id pid
每个窗口有winID()
// 3
pixmap scaled 比例缩放
QClipboard 操作系统剪切版
            m_pic = QPixmap::grabWindow(w.winId());
            QClipboard *clipboard = QGuiApplication::clipboard();
//            QString originalText = clipboard->text();
//            qDebug() << originalText;
            clipboard->setPixmap(m_pic);
 

.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDesktopWidget>
#include <QFileDialog>
#include <QScreen>
#include <QDir>
#include <QClipboard>
#include <QDebug> MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
} MainWindow::~MainWindow()
{
delete ui;
} void MainWindow::on_newPicButton_clicked()
{
if (ui->radioButtonHide->isChecked()) {
timer = new QTimer();
//timer->setInterval(ui->spinBox->value()*1000); //this->hide();
timer->start(/);
//int id = startTimer(ui->spinBox->value()*1000);
connect(this->timer,&QTimer::timeout,this,[=]{
//QDesktopWidget w;
m_pic = QPixmap::grabWindow(QApplication::desktop()->winId()); // 保存到剪切版
//QClipboard *clipboard = QGuiApplication::clipboard(); // QString originalText = clipboard->text();
// qDebug() << originalText;
//clipboard->setPixmap(m_pic); QSize size = ui->labelShowPic->size();
ui->labelShowPic->setPixmap(m_pic.scaled(size));
//timer->stop();
//this->show();
}); }
else {
qApp->beep();// 嘀嘀响
}
} void MainWindow::on_savePicButton_clicked()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
QDir::currentPath(),
tr("Images (*.png *.xpm *.jpg)")); if (!fileName.isEmpty()) {
m_pic.save(fileName);
} } void MainWindow::on_exitButton_clicked()
{
this->close();
}

.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QTimer>
#include <QPixmap> namespace Ui {
class MainWindow;
} class MainWindow : public QMainWindow
{
Q_OBJECT public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow(); private slots:
void on_newPicButton_clicked(); void on_savePicButton_clicked(); void on_exitButton_clicked(); private:
Ui::MainWindow *ui; QTimer *timer;
QPixmap m_pic;
}; #endif // MAINWINDOW_H

剪切版QClipBoard实现进程间通信

#include "widget.h"
#include "ui_widget.h" Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
m_timer = new QTimer(this);
m_timer->start(); connect(m_timer,&QTimer::timeout,this,&Widget::fetchPicFromClipBoard);
} Widget::~Widget()
{
delete ui;
} void Widget::fetchPicFromClipBoard()
{
QClipboard *board = QGuiApplication::clipboard();
QPixmap pix = board->pixmap();
ui->label->setPixmap(pix.scaled(ui->label->size()));
}
#ifndef WIDGET_H
#define WIDGET_H #include <QWidget> #include <QClipboard>
#include <QTimer> namespace Ui {
class Widget;
} class Widget : public QWidget
{
Q_OBJECT public:
explicit Widget(QWidget *parent = nullptr);
~Widget(); void fetchPicFromClipBoard(); private:
Ui::Widget *ui; QTimer *m_timer;
}; #endif // WIDGET_H

qt截图grapWindow,操作系统剪切版QClipBoard实现进程间通信的更多相关文章

  1. VIM 与 系统剪切版

    1, 查看 vim 是否支持 clipboard 功能 $ vim --version | grep clipboard 2, 如果有 +clipboard 则跳过这一步; 如果显示的是 -clipb ...

  2. Qt代码覆盖率code coverage(VS版)

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt代码覆盖率code coverage(VS版)     本文地址:http://techi ...

  3. c++学习书籍推荐《C++ GUI Qt 4编程(第2版)》下载

    下载地址:点我 百度云及其他网盘下载地址:点我 编辑推荐 <C++ GUI Qt 4编程(第2版)>讲授的大量Qt4编程原理和实践,都可以轻易将其应用于Qt4.4.Qt4.5及后续版本的Q ...

  4. JQ插件之imgAreaSelect实现对图片的在线截图功能(java版)

    前言:在做网站的时候经常用的功能就是,用户上传图片对自己上传的图片进行截图,DIV自己的头像.或者上传幻灯片大图进行DIV设置小图. 解决方案:目前我知道的解决方案有两个如下:       一.fla ...

  5. LightCapture for Mac(流程化截图工具)破解版安装

    1.软件简介    LightCapture 是 macOS 系统上的截图软件.LightCapture Mac 版号称是用最简洁的方式来截图,其的界面也确实非常简单整洁,不过功能同样出色,一键截屏. ...

  6. zabbix自动截图留档_python版

    1 背景     每个DB Server都有zabbix监控,除了异常情况的报警信息外,也会在日检.周检.月检等工作中用到zabbix的监控数据,对zabbix监控数据会做两种处理:1 数据分析(环比 ...

  7. Qt ------ 截图、获取鼠标指定的RGB值

    获取RGB值思路:截图,获取图片的(0,0)的RGB值 int x = QCursor::pos().x(); int y = QCursor::pos().y(); // QPixmap pixma ...

  8. 怎么将vim的剪切版设置成系统的剪切版

    如果你用vim敲完了代码,怎么把代码提交到ACMoj的粘贴版上呢. 这是个问题. 去网上查了一下,首先有人说可以在vimrc里面添加 set clipboard=unnamed 我试了一下,没有效果. ...

  9. Qt编写输入法V2019终极版

    一.前言 之前写过的V2018版本的输入法,本来已经很完善了,不打算更新升级了,最近有个朋友找我定制一个输入法,需要高仿一个苹果MAC电脑的输入法,MAC操作系统的审美无疑是相当棒的,于是乎直接拿以前 ...

随机推荐

  1. java接口幂等性校验

    关于接口幂等性的概念: 幂等性:同一接口调用多次(使用相同的参数),对系统的影响是相同的. 怎样才是对系统有影响? 有影响--->增删改操作,修改一个用户信息,删除用户与某人的关联关系,生成一个 ...

  2. docker相关--开始使用swarm模式

    Swarm简介 Swarm是Docker的一个编排工具,参考官网:https://docs.docker.com/engine/swarm/ Swarm 模式简介 要在Swarm模式下运行docker ...

  3. SDOI2019 Round2

    这鬼家伙已经咕了好久了-- SDOIR2的题目挺好玩的- 快速查询(???) 不难发现所有的操作都可以通过区间打Tag实现 那么可以维护两个标记\(a,b\)表示序列中的数为\(x\)时实际表示的值是 ...

  4. git 学习笔记 ---安装

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). 安装Git 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git: $ git The progr ...

  5. Helm命令帮助参数

    # helm help The Kubernetes package manager To begin working with Helm, run the 'helm init' command: ...

  6. idea 中激活 JRebel

    JRebel介绍: JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效.IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,修改才能 ...

  7. Unity的学习笔记(UGUI文本逐个字输出)

    之前在网上找过各种的逐个输出字,我可能理解能力不好,照着代码复制没有能使用成功,于是自己研究了很多网上说的思路,各种改良出了一个能用的,写完自己测试,觉得还真好用,于是记录下来 用法:将用代码组件挂上 ...

  8. python --- 字符编码学习小结(二)

    距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...

  9. Java8 基础数据类型包装类-Long

     https://blog.csdn.net/u012562117/article/details/79023440 基础 //final修饰不可更改,每次赋值都是新建类(其中-128~127是通过L ...

  10. C# vb .net实现不透明度调整特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的不透明度调整呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...