diff --git a/src/image_show.cpp b/src/image_show.cpp index a9bcfa0..4dcc773 100644 --- a/src/image_show.cpp +++ b/src/image_show.cpp @@ -1,16 +1,19 @@ #include "image_show.h" + +#include // Qt5 不再建议使用 QDesktopWidget #include -#include #include + #include #include #include #include -#include + DWIDGET_USE_NAMESPACE + image_show::image_show(QWidget *parent) : QWidget(parent) { - QHBoxLayout *layout=new QHBoxLayout; + QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(m_label); setLayout(layout); m_label->setText("layout"); @@ -19,17 +22,23 @@ image_show::image_show(QWidget *parent) : QWidget(parent) void image_show::setImage(QPixmap image) { QImage screen0; - screen0=image.toImage(); -// QPainter painter(&screen0); + screen0 = image.toImage(); + // QPainter painter(&screen0); QImage re_screen1; - QImage re_screen0=screen0.scaled(QSize(400,300),Qt::KeepAspectRatio,Qt::SmoothTransformation); - desktop_w=DApplication::desktop()->width(); - desktop_h=DApplication::desktop()->height(); - if(screen0.width()>(desktop_w-20) || screen0.height()>(desktop_h-20)){ - re_screen1=screen0.scaled(QSize(desktop_w-20,desktop_h-20),Qt::KeepAspectRatio,Qt::SmoothTransformation); - m_image=QPixmap::fromImage(re_screen1); - }else { - m_image=image; + QImage re_screen0 = screen0.scaled(QSize(400, 300), Qt::KeepAspectRatio, Qt::SmoothTransformation); + + // 获取主屏幕尺寸 + desktop_w = DApplication::primaryScreen()->geometry().width(); + desktop_h = DApplication::primaryScreen()->geometry().height(); + + if(screen0.width() > (desktop_w - 20) || screen0.height() > (desktop_h - 20)) + { + re_screen1 = screen0.scaled(QSize(desktop_w - 20, desktop_h - 20), Qt::KeepAspectRatio, Qt::SmoothTransformation); + m_image = QPixmap::fromImage(re_screen1); + } + else + { + m_image = image; } m_label->setPixmap(QPixmap::fromImage(re_screen0)); @@ -37,10 +46,12 @@ void image_show::setImage(QPixmap image) void image_show::mousePressEvent(QMouseEvent *) { - m_dialog->setimage(m_image); - m_dialog->showFullScreen(); - m_dialog->setFixedSize(desktop_w,desktop_h); - m_dialog->move(0,0);/* - moveToCenter(m_dialog);*/ + m_dialog->setimage(m_image); + m_dialog->showFullScreen(); + // 识别主屏幕尺寸并设置 widget 大小 + m_dialog->setFixedSize(desktop_w, desktop_h); + + m_dialog->move(0,0); + // moveToCenter(m_dialog); }