From 114489c3d64a6dc8f74dbf5c61cede18b3c680c2 Mon Sep 17 00:00:00 2001 From: Maicss Date: Tue, 28 Jul 2020 13:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E4=BA=86=E6=88=AA=E5=9B=BE?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- big_image.cpp | 31 +++++++++++++++++++++++++++++++ big_image.h | 25 +++++++++++++++++++++++++ image_show.cpp | 17 ++++++----------- image_show.h | 5 +++-- spark-store.pro | 6 ++++-- 5 files changed, 69 insertions(+), 15 deletions(-) create mode 100644 big_image.cpp create mode 100644 big_image.h diff --git a/big_image.cpp b/big_image.cpp new file mode 100644 index 0000000..a12592b --- /dev/null +++ b/big_image.cpp @@ -0,0 +1,31 @@ +#include "big_image.h" +#include +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(); +} diff --git a/big_image.h b/big_image.h new file mode 100644 index 0000000..4a22430 --- /dev/null +++ b/big_image.h @@ -0,0 +1,25 @@ +#ifndef BIG_IMAGE_H +#define BIG_IMAGE_H + +#include +#include +#include +#include +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 diff --git a/image_show.cpp b/image_show.cpp index b6599b2..a95c042 100644 --- a/image_show.cpp +++ b/image_show.cpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include 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); + } diff --git a/image_show.h b/image_show.h index 5046c49..7aa4ff1 100644 --- a/image_show.h +++ b/image_show.h @@ -6,7 +6,8 @@ #include #include #include - +#include +#include 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: diff --git a/spark-store.pro b/spark-store.pro index 155ee5b..be8bcf4 100644 --- a/spark-store.pro +++ b/spark-store.pro @@ -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