#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//隐藏标题栏
setWindowFlags(Qt::FramelessWindowHint);//无边框 置顶
//设置窗口背景透明
setAttribute(Qt::WA_TranslucentBackground);
//全屏显示
showFullScreen();
//设置样式
this->setStyleSheet("#Widget{background-color: rgba(0, 0, 0, 150);}");
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *p1)
{
//绘制样式
QStyleOption opt;
opt.initFrom(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//绘制样式
if(isPressedWidget)
{
//定义画笔
QPen pen;
pen.setWidth(5);
pen.setColor(QColor("#00B0AE"));
pen.setStyle(Qt::DashDotLine);
p.setPen(pen);
//创建画刷
QBrush brush;
brush.setColor(QColor("#00B0AE"));
brush.setStyle(Qt::Dense6Pattern);
p.setBrush(brush);
QRect tempRt(m_startPT, m_endPT);
p.drawRect(tempRt);
}
}
void Widget::mousePressEvent(QMouseEvent *event)
{
m_endPT = m_startPT = event->pos();
isPressedWidget = true; // 当前鼠标按下的即是QWidget而非界面上布局的其它控件
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
QPoint tmp_pos=event->pos();
if(tmp_pos.x()>m_startPT.x() || tmp_pos.y()>m_startPT.y())
{
m_endPT = event->pos();
}
this->update();
}
void Widget::mouseReleaseEvent(QMouseEvent *event)
{
isPressedWidget = false; // 鼠标松开时,置为false
QRect rect(m_startPT, m_endPT);
qDebug()<<"选择的范围:"<<rect;
qDebug()<<"rect.x(): "<<rect.x();
qDebug()<<"rect.x(): "<<rect.y();
qDebug()<<"rect.x(): "<<rect.height();
qDebug()<<"rect.x(): "<<rect.width();
QScreen *screen = QApplication::primaryScreen();
QPixmap pximap = screen->grabWindow(0, rect.x() ,rect.y(),rect.width() , rect.height());
QImage image = pximap.toImage();
image.save("D:\\CC.jpg");
close();
}
/*
工程: HTTP_Request
日期: 2022-8-9
作者: 双子座断点
环境: win10 QT5.12.6
功能: 进入全屏
*/
void Widget::on_pushButton_clicked()
{
showFullScreen();
}
/*
工程: HTTP_Request
日期: 2022-8-9
作者: 双子座断点
环境: win10 QT5.12.6
功能: 进入全屏
*/
//void Widget::on_pushButton_2_clicked()
//{
// showNormal();
//}
/*
工程: HTTP_Request
日期: 2022-8-9
作者: 双子座断点
环境: win10 QT5.12.6
功能: 进入全屏
*/
void Widget::on_pushButton_close_clicked()
{
close();
}
//原作者: DS小龙哥
评论0