qt截图grapWindow,操作系统剪切版QClipBoard实现进程间通信
QDesktopWidget 获得当前程序所在窗口id pid
每个窗口有winID()
pixmap scaled 比例缩放
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实现进程间通信的更多相关文章
- VIM 与 系统剪切版
1, 查看 vim 是否支持 clipboard 功能 $ vim --version | grep clipboard 2, 如果有 +clipboard 则跳过这一步; 如果显示的是 -clipb ...
- Qt代码覆盖率code coverage(VS版)
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt代码覆盖率code coverage(VS版) 本文地址:http://techi ...
- c++学习书籍推荐《C++ GUI Qt 4编程(第2版)》下载
下载地址:点我 百度云及其他网盘下载地址:点我 编辑推荐 <C++ GUI Qt 4编程(第2版)>讲授的大量Qt4编程原理和实践,都可以轻易将其应用于Qt4.4.Qt4.5及后续版本的Q ...
- JQ插件之imgAreaSelect实现对图片的在线截图功能(java版)
前言:在做网站的时候经常用的功能就是,用户上传图片对自己上传的图片进行截图,DIV自己的头像.或者上传幻灯片大图进行DIV设置小图. 解决方案:目前我知道的解决方案有两个如下: 一.fla ...
- LightCapture for Mac(流程化截图工具)破解版安装
1.软件简介 LightCapture 是 macOS 系统上的截图软件.LightCapture Mac 版号称是用最简洁的方式来截图,其的界面也确实非常简单整洁,不过功能同样出色,一键截屏. ...
- zabbix自动截图留档_python版
1 背景 每个DB Server都有zabbix监控,除了异常情况的报警信息外,也会在日检.周检.月检等工作中用到zabbix的监控数据,对zabbix监控数据会做两种处理:1 数据分析(环比 ...
- Qt ------ 截图、获取鼠标指定的RGB值
获取RGB值思路:截图,获取图片的(0,0)的RGB值 int x = QCursor::pos().x(); int y = QCursor::pos().y(); // QPixmap pixma ...
- 怎么将vim的剪切版设置成系统的剪切版
如果你用vim敲完了代码,怎么把代码提交到ACMoj的粘贴版上呢. 这是个问题. 去网上查了一下,首先有人说可以在vimrc里面添加 set clipboard=unnamed 我试了一下,没有效果. ...
- Qt编写输入法V2019终极版
一.前言 之前写过的V2018版本的输入法,本来已经很完善了,不打算更新升级了,最近有个朋友找我定制一个输入法,需要高仿一个苹果MAC电脑的输入法,MAC操作系统的审美无疑是相当棒的,于是乎直接拿以前 ...
随机推荐
- (父向子传值)组件内的properties类似与vue中的prop接收外界传递进来的参数
=================================================== 外界引用组件的时候 传递方法 父传子
- 转 Json数据格式化
/// <summary> /// JSON字符串格式化 /// </summary> /// <param name="json"></ ...
- 前端开发 vue,angular,react框架对比2
在过去一年里,前端开发发展迅速,前端工程师的薪资亦是水涨船高.2019 更是热度不减,而作为近年来尤为热门的前端框架,Vue.js 自是积累了大量关注.那么,Vue.js 是适合你的框架吗? ...
- linux ubuntu-16.04-配置java1.8和Tomcat8
前言 第一次使用linux ubuntu16.04 服务器,所以做一下常用配置的记录. JDK 1.创建存放jdk的目录 一般在usr/local下创建一个java文件夹 cd /usr/local ...
- vs2017开启JavaScript智能提示
[工具]--[选项]--[文本编辑器]--[JavaScript]--[语言服务] 把第一个钩去掉即可,如果不需要提示就打上勾
- git/github安装与使用教程
新学习了Git和GitHub的使用,记一下笔记,也希望可以帮助他人,这里只是初级阶段,以后还会不断的修改和完善. 1.什么是git 开源的分布式版本控制系统,与svn比独特的地方: 1.解决了svn后 ...
- 更新yum源并重建缓存
原文连接 1)下载wget yum install -y wget 2)备份默认的yum mv /etc/yum.repos.d /etc/yum.repos.d.backup 3)设置新的yum目录 ...
- Linux 曝出严重安全漏洞,受限用户亦可提权至 Root 身份运行任意命令!(内附解决方案)
本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...
- fontawesome-iconpicker 自定义字体图标选择器
官网地址:https://farbelous.io/fontawesome-iconpicker/ 头部文件引入 <!--本地地址--> <link href="../cs ...
- kubelet 参数详解
kubelet 参数详解 基本参数 --allow-privileged=true #允许容器请求特权模式 --anonymous-auth=false #不允许匿名请求到 kubelet 服务(默认 ...