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. 配置Setting.xml文件提高maven更新下载jar包速度

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...

  2. 转 js一个简单实用的弹出层

      关闭 点击查看 >> <html> <head> <title>新文件标题</title> <script type=" ...

  3. 《Linux》跟老男孩学Linux核心系统命令

    一.命令行简介 1.1 Linux 命令行提示符介绍 [root@root_pc ~]# #<==这是超级管理员root用户对应的命令行 [oldboy@oldboy_pc ~]$ #<= ...

  4. img中alt和title属性的区别

    在图像标签img中,除了常用的宽度width和高度height属性之外,还有两个比较重要并且也会用到的属性,就是alt和title,这都是用来显示图片内容的具体信息的,但是这两个属性也有不同的地方.a ...

  5. Ubuntu-18.04 LTS UEFI 安装U盘制作

    要把U盘作为UEFI启动盘,第一个分区要为FAT32分区,EFI程序放在/EFI/Boot/bootx64.efi.为了制作Ubuntu-18.04 LTS安装U盘,可以把一个U盘格式化为FAT32格 ...

  6. TP5配置隐藏入口index.php文件,Apache/phpstudy

    一,找到/public/.htaccess文件,如果你的入口文件已经移动到根目录下,那么你的.htaccess文件也要剪切到根目录下,总之要确保.htaccess跟入口的index.php保持同级. ...

  7. Spark运行原理【史上最详细】

    https://blog.csdn.net/lovechendongxing/article/details/81746988 Spark应用程序以进程集合为单位在分布式集群上运行,通过driver程 ...

  8. 修改bash终端命令行颜色

    要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置.在终端输入命令:#set,即可在输出中找到关于PS1的定义如下: PS1='[ ...

  9. python协程详解,gevent asyncio

    python协程详解,gevent asyncio 新建模板小书匠 #协程的概念 #模块操作协程 # gevent 扩展模块 # asyncio 内置模块 # 基础的语法 1.生成器实现切换 [1] ...

  10. Microsoft Onenote shortcuts / Onenote快捷键大全

    Onenote跟Libreoffice ,有道笔记比起来一个快捷键特别不太好用,就是Ctrl + Shift +v 并不会提供一个选择粘贴模式选项. 而在Onenote 中 Ctrl + Shift ...