#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDesktopWidget>
#include <QFileDialog>
#include <QScreen>
#include <QDir>
#include <QClipboard>
#include <QDebug>
#include <QCursor>
#include <QProcess> 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();
} void MainWindow::contextMenuEvent(QContextMenuEvent *e)
{
QMenu *menu = new QMenu(this);
QAction *action = new QAction(this);
QAction *startNotePad = new QAction(this); connect(action,&QAction::triggered,this,&MainWindow::on_savePicButton_clicked);
connect(startNotePad,&QAction::triggered,this,&MainWindow::startNotePad); action->setText("Save as");
startNotePad->setText("startNotePad");
menu->addAction(action);
menu->addAction(startNotePad);
menu->exec(QCursor::pos());
} void MainWindow::startNotePad()
{
QProcess *p = new QProcess();
p->start("notepad.exe");
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QTimer>
#include <QPixmap>
#include <QContextMenuEvent>
#include <QMenu>
#include <QAction> 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(); void contextMenuEvent(QContextMenuEvent *e); void startNotePad(); private:
Ui::MainWindow *ui; QTimer *timer;
QPixmap m_pic;
}; #endif // MAINWINDOW_H

contextMenuEvent的更多相关文章

  1. QMenu,contextmenuevent,窗体透明

    void MainWindow::contextMenuEvent(QContextMenuEvent *event) { QMenu *menu=newQMenu; menu->addActi ...

  2. 关于tkCommand的各种事件的解释

    superclass for callback/observer methods vtkCommand is an implementation of the observer/command des ...

  3. QTableWidget详解(样式、右键菜单、表头塌陷、多选等)

    在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是最基本的,有一些比较经常遇到的问题也说得不太清楚.所以,今天就在这里总结一下! 以下为个人模拟Windo ...

  4. 利用Flex组件birdeye绘制拓扑关系图

    birdeye绘制拓扑关系图 1.flex简单介绍 Flex 是一个高效.免费的开源框架,可用于构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AI ...

  5. Flex contextMenu

    没想到再这里也要跌跌撞撞. 这个东西我很久之前就懂了的啊! 最开始是这么写的: private function init():void { var contextMenu:ContextMenu = ...

  6. QTableWidget详解(样式、右键菜单、表头塌陷、多选等) 2013-10-23 10:54:04

    一.设置表单样式 点击(此处)折叠或打开 table_widget->setColumnCount(4); //设置列数 table_widget->horizontalHeader()- ...

  7. 【转载】Pyqt 添加右键菜单方法

    转载地址: http://www.cnblogs.com/yogalau/p/3954042.html?utm_source=tuicool QListWidget 是继承 QWidget 的, 所以 ...

  8. 关于QT的系统总结

    编译环境与开发流程 开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工具.前一种是微软的工具,用的都比较多容易上手,缺点是信号槽的支持不太好,需要手写 ...

  9. Qt之QAbstractItemView右键菜单

    一.功能概述 说起右键菜单,之前Qt之自定义QLineEdit右键菜单这篇文章中我已经讲述过3种右键菜单的实现方式,今儿也是在啰嗦一下,针对QListWidget类在定制一下右键菜单,我使用的具体方式 ...

随机推荐

  1. golang ---网卡信息

    package main import ( "fmt" "log" "net" "strings" ) type Net ...

  2. 如何在 WPF 中获取所有已经显式赋过值的依赖项属性

    原文:如何在 WPF 中获取所有已经显式赋过值的依赖项属性 获取 WPF 的依赖项属性的值时,会依照优先级去各个级别获取.这样,无论你什么时候去获取依赖项属性,都至少是有一个有效值的.有什么方法可以获 ...

  3. Arduino 计算机视觉系统概述

    计算机视觉系统概述 计算机视觉系统是最近比较热门的研究领域,今天开始给大家介绍下计算机视觉相关的知识. 视觉是人的所有感官中最敏感的一种,人的视觉可以感知环境,而机器的视觉却很难感知环境 为了解决计算 ...

  4. Manjaro 安装笔记

    双系统基本知识 [折腾日记]win10 ,ubuntu双系统安装避坑指南 Windows 下安装 Ubuntu 双系统(更新) rEFInd 总结注意点: 制作U盘启动盘一开始使用的是 Ulrstro ...

  5. 【转载】C#中string.IsNullOrEmpty和string.IsNullOrWhiteSpace区别

    在C#中判断字段是否为空或者Null的时候,我们一般会使用到string.IsNullOrEmpty和string.IsNullOrWhiteSpace方法,这两个方法在大部分情况下判断的结果是一致的 ...

  6. 一分钟读懂低功耗蓝牙(BLE)连接数据包

    一分钟读懂低功耗蓝牙(BLE)连接数据包 1.概述 BLE 连接过程中有三个重要的数据包:SCAN_REQ, SCAN_RSP 和 CONNECT_REQ. SCAN_REQ: 扫描请求,由主设备(M ...

  7. Mybatis中传递多个参数的方法总结

    一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList&q ...

  8. Linux下环境变量设置 (转)

    Linux下环境变量设置 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错 ...

  9. 服务发现:Zookeeper vs etcd vs Consul_转

    转自:https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=208173179&idx=1&sn=392c17b136c2 ...

  10. STL详细介绍(更新中~~~)

    目录 string string的常见构造函数 string与char *(或const char*)之间的转换 string 转化为const char* const char* 转化为string ...