From 0eb877e733a15fbf49f0f2ef358dd261c4c4ba78 Mon Sep 17 00:00:00 2001 From: qiuchangxing Date: Wed, 21 Apr 2021 16:55:57 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=97=8F=E8=AF=AD?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E4=B8=8B=E4=BB=BB=E5=8A=A1=E6=A0=8F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E6=8F=92=E4=BB=B6=E7=95=8C=E9=9D=A2=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 时间绘制区域未做判断,当时间字体占的高度大于任务栏高度的一半时,时间不能完全显示,部分被切割,添加判断时间字体占的高度大于任务栏高度的一半减2时,时间字体要调小,直到时间字体占的高度小于任务栏高度的一半减2,时间就可以完整显示了 Log: 修复藏语系统下任务栏日期插件界面时间不能完整显示 Bug: https://pms.uniontech.com/zentao/bug-view-68763.html Change-Id: Ia341da17cbc47ab73ad9332c31434c4f9f91497a --- plugins/datetime/datetimewidget.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/datetime/datetimewidget.cpp b/plugins/datetime/datetimewidget.cpp index 50fbc0ef0..3aaba6fed 100644 --- a/plugins/datetime/datetimewidget.cpp +++ b/plugins/datetime/datetimewidget.cpp @@ -134,7 +134,9 @@ QSize DatetimeWidget::curTimeSize() const QSize dateSize = QFontMetrics(m_dateFont).boundingRect("0000/00/00").size(); if (position == Dock::Bottom || position == Dock::Top) { - while (QFontMetrics(m_timeFont).boundingRect(timeString).size().height() + QFontMetrics(m_dateFont).boundingRect("0000/00/00").size().height() > height()) { + // 时间绘制区域未做判断,当时间字体占的高度大于任务栏高度的一半时,时间不能完全显示,部分被切割,添加判断时间字体占的高度大于任务栏高度的一半减2时,时间字体要调小, + // 直到时间字体占的高度小于任务栏高度的一半减2,时间就可以完整显示了 + while (QFontMetrics(m_timeFont).boundingRect(timeString).size().height() + QFontMetrics(m_dateFont).boundingRect("0000/00/00").size().height() > height() || QFontMetrics(m_timeFont).boundingRect(timeString).size().height() > (height() / 2 -2)) { m_timeFont.setPixelSize(m_timeFont.pixelSize() - 1); timeSize.setWidth(QFontMetrics(m_timeFont).boundingRect(timeString).size().width()); if (m_timeFont.pixelSize() - m_dateFont.pixelSize() == 1) { @@ -191,10 +193,12 @@ void DatetimeWidget::paintEvent(QPaintEvent *e) QRect dateRect = rect(); if (position == Dock::Top || position == Dock::Bottom) { - timeRect.setBottom(rect().center().y() + 6); + // 上下显示dock时,藏文字体比较特殊,调整时间和日期区域的布局 + timeRect.setBottom(rect().center().y() + 10); dateRect.setTop(timeRect.bottom() - 4); } else { - timeRect.setBottom(rect().center().y() + m_timeOffset); + // 左右显示dock时,藏文字体比较特殊,调整时间和日期区域的布局 + timeRect.setBottom(rect().center().y() + m_timeOffset + 6); dateRect.setTop(timeRect.bottom()); } painter.drawText(timeRect, Qt::AlignBottom | Qt::AlignHCenter, current.toString(format));