From 8affa1937dc80a97d8bce7b2ca895085311e638a Mon Sep 17 00:00:00 2001 From: rankun Date: Thu, 8 Nov 2018 18:59:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AA=97=E5=8F=A3=E5=B1=85=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/videoform.cpp | 25 ++++++++++++++++--------- src/videoform.h | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/videoform.cpp b/src/videoform.cpp index dd047cb..c50dae5 100644 --- a/src/videoform.cpp +++ b/src/videoform.cpp @@ -77,16 +77,23 @@ VideoForm::~VideoForm() void VideoForm::updateShowSize(const QSize &newSize) { - QSize showSize = newSize; - QDesktopWidget* desktop = QApplication::desktop(); - if (desktop) { - QSize screenSize = desktop->size(); - showSize.setWidth(qMin(newSize.width(), screenSize.width())); - showSize.setHeight(qMin(newSize.height(), screenSize.height() - 100)); - } + if (frameSize != newSize) { + frameSize = newSize; - if (showSize != size()) { - resize(showSize); + QSize showSize = newSize; + QDesktopWidget* desktop = QApplication::desktop(); + if (desktop) { + QRect screenRect = desktop->availableGeometry(); + showSize.setWidth(qMin(newSize.width(), screenRect.width())); + showSize.setHeight(qMin(newSize.height(), screenRect.height() - 100)); + + // 窗口居中 + move(screenRect.center() - geometry().center()); + } + + if (showSize != size()) { + resize(showSize); + } } } diff --git a/src/videoform.h b/src/videoform.h index c81aeb4..14f4937 100644 --- a/src/videoform.h +++ b/src/videoform.h @@ -33,6 +33,7 @@ protected: private: Ui::videoForm *ui; + QSize frameSize; Server* m_server = Q_NULLPTR; Decoder m_decoder; Frames m_frames;