Qt把控件截图并保存到剪切板、保存到图片文件
来源:互联网 发布:威海市南海新区知乎 编辑:程序博客网 时间:2024/05/18 02:53
1,简介
界面某个数据展示控件,让用户可以复制到剪切板,方便粘贴到其他地方如QQ、word里面直接拿去交流使用;同时也可以保存到磁盘作为图片文件,作长期存储。
就和QQ聊天窗口的下面2个右键菜单功能一样:
2,效果
2.1 表格右键菜单:复制、另存为
2.2 复制的内容 粘贴出来的效果,只有该控件区域
2.3 另存为调起保存图片对话框
2.4 其中图片格式提供了常见的3种格式供选择
2.5 保存后生成到应用程序目录的图片文件
3,涉及技术
表格的右键菜单;
控件截图;
QT提供的剪切板类使用;
保存对话框调用;
4,主要代码
使用QT设计器添加1个表格TableWidget,并增加一些行列,效果如图:
MainWindow.h:
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();public slots: void slotTableMenu(const QPoint &pos); //表格右键菜单 void slotActionCopy(bool checked); //复制 void slotActionSave(bool checked); //另存为private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDir>#include <QDateTime>#include <QClipboard>#include <QFileDialog>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->tableWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(slotTableMenu(const QPoint&)));}MainWindow::~MainWindow(){ delete ui;}void MainWindow::slotTableMenu(const QPoint &pos){ QMenu menu; menu.addAction(QStringLiteral("复制"), this, SLOT(slotActionCopy(bool))); menu.addAction(QStringLiteral("另存为"), this, SLOT(slotActionSave(bool))); menu.exec(QCursor::pos());}//复制截图到剪切板void MainWindow::slotActionCopy(bool checked){ QString strFile = QCoreApplication::applicationDirPath() + "\\ScreenShot\\Data_"; strFile = strFile + QDateTime::currentDateTime().toString("yyyyMMddHHmmss") + ".png"; QPixmap pix = QPixmap::grabWidget(ui->tableWidget); QApplication::clipboard()->setPixmap(pix);}//截图另存为文件void MainWindow::slotActionSave(bool checked){ //默认保存路径为当前应用程序路径下的ScreenShot文件夹,如果没有就新建该文件夹 QString strDir = QCoreApplication::applicationDirPath() + "\\ScreenShot"; QDir dir(strDir); if(!dir.exists()) { dir.mkdir(strDir); } QString strFile = strDir + "\\数据快照" + QDateTime::currentDateTime().toString("yyyyMMddHHmmss") + ".png"; QPixmap pix = QPixmap::grabWidget(ui->tableWidget); QString fileName = QFileDialog::getSaveFileName(this,"保存图片",strFile,"PNG (*.png);;BMP (*.bmp);;JPEG (*.jpg *.jpeg)"); if (!fileName.isNull()) { pix.save(fileName); }}
5,源码
QT实用技术2-把控件截图并保存到剪切板、保存到图片文件Demo.rar
百度网盘:https://pan.baidu.com/s/1o8OFVdC
阅读全文
0 0
- Qt把控件截图并保存到剪切板、保存到图片文件
- 把窗体客户区图像保存到文件或剪切板
- 截图并保存到相册
- 保存剪切板上的bmp图片到文件
- Java 截图工具(包括将截图保存到剪切板)
- silverlight中将图片控件保存到文件
- 保存图片到文件
- iOS 把图片保存到相册,并获取图片文件名
- 把图片保存到相册
- 保存图片到系统图库,截图保存到系统图库
- Java实现截图并保存到本地
- java实现截图并保存到本地
- 获取指定窗口界面到图片 同时 保存到剪切板
- 把文件保存到 sdcard
- 获取屏幕截图 并保存到相册 弹出提示框 提示图片保存成功
- 毛玻璃效果,保存图片到相册,截图
- Qt 获取网络gif图片并保存到本地显示
- Qt截取窗口到保存到图片
- 开餐馆 动态规划 题解
- 基于Maven的Sonar安装配置
- 安卓自定义属性的使用
- HDU 2550 百步穿杨
- Unity中JSON序列化与反序列化
- Qt把控件截图并保存到剪切板、保存到图片文件
- Print power set (DFS)
- 怎样让mt_rand产生负数和正数
- 关于PL/SQL与Oracle 12c client的…
- 关于PL/SQL与Oracle Database 12c …
- Response.StatusCode的HTTP…
- 拆解VCM音圈马达,原理、结构
- [Python3爬虫从入门到精通]中国大…
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore