重写了截图查看窗口

This commit is contained in:
Maicss 2020-07-28 13:58:48 +08:00
parent 101a6bc370
commit 114489c3d6
5 changed files with 69 additions and 15 deletions

31
big_image.cpp Normal file

@ -0,0 +1,31 @@
#include "big_image.h"
#include <QHBoxLayout>
big_image::big_image(DBlurEffectWidget *parent) : DBlurEffectWidget(parent)
{
// m_image->setParent(this);
QHBoxLayout *layout=new QHBoxLayout;
setLayout(layout);
layout->addWidget(m_image);
layout->setMargin(0);
m_image->setAlignment(Qt::AlignCenter);
m_image->setMaximumSize(1024,768);
setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);//设置图片对话框总在最前
}
void big_image::mousePressEvent(QMouseEvent *)
{
hide();
m_image->clear();
}
void big_image::setimage(QPixmap image)
{
m_image->setPixmap(image);
}
void big_image::focusOutEvent(QFocusEvent *)
{
hide();
m_image->clear();
}

25
big_image.h Normal file

@ -0,0 +1,25 @@
#ifndef BIG_IMAGE_H
#define BIG_IMAGE_H
#include <QWidget>
#include <DBlurEffectWidget>
#include <QMouseEvent>
#include <QLabel>
DWIDGET_USE_NAMESPACE
class big_image : public DBlurEffectWidget
{
Q_OBJECT
public:
explicit big_image(DBlurEffectWidget *parent = nullptr);
void mousePressEvent(QMouseEvent *event);
QLabel *m_image=new QLabel;
void setimage(QPixmap);
void focusOutEvent(QFocusEvent *event);
signals:
public slots:
};
#endif // BIG_IMAGE_H

@ -3,6 +3,8 @@
#include <QDebug>
#include <QPainter>
#include <DDialog>
#include <DBlurEffectWidget>
#include <DWidgetUtil>
DWIDGET_USE_NAMESPACE
image_show::image_show(QWidget *parent) : QWidget(parent)
{
@ -10,7 +12,6 @@ image_show::image_show(QWidget *parent) : QWidget(parent)
layout->addWidget(m_label);
setLayout(layout);
m_label->setText("layout");
}
void image_show::setImage(QPixmap image)
@ -35,14 +36,8 @@ void image_show::setImage(QPixmap image)
void image_show::mousePressEvent(QMouseEvent *)
{
image.setPixmap(m_image);
m_dialog->setTitle("截图预览");
image.setAlignment(Qt::AlignCenter);
m_dialog->layout()->addWidget(&image);
m_dialog->layout()->setMargin(10);
image.setMaximumSize(1024,768);
m_dialog->setWindowFlags(m_dialog->windowFlags() | Qt::WindowStaysOnTopHint);//设置图片对话框总在最前
image.show();
m_dialog->hide();
m_dialog->exec();
m_dialog->setimage(m_image);
m_dialog->show();
moveToCenter(m_dialog);
}

@ -6,7 +6,8 @@
#include <QLabel>
#include <QPixmap>
#include <DDialog>
#include <DBlurEffectWidget>
#include <big_image.h>
DWIDGET_USE_NAMESPACE
class image_show : public QWidget
{
@ -19,7 +20,7 @@ private:
QLabel *m_label=new QLabel;
QPixmap m_image;
QLabel image;
DDialog *m_dialog=new DDialog;
big_image *m_dialog=new big_image;
void mousePressEvent(QMouseEvent *event);
signals:

@ -27,12 +27,14 @@ SOURCES += main.cpp\
mainwindow.cpp \
widget.cpp \
downloadlist.cpp \
image_show.cpp
image_show.cpp \
big_image.cpp
HEADERS += mainwindow.h \
widget.h \
downloadlist.h \
image_show.h
image_show.h \
big_image.h
CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget