From 72c1f1e7025dbfb1d4f6f05a9c2cc59cc1eac2f2 Mon Sep 17 00:00:00 2001 From: Jokul Date: Sat, 8 Aug 2026 21:35:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=BB=E5=8A=A1=E6=A0=8F=E5=8F=8C?= =?UTF-8?q?=E8=A1=8C=E7=BD=91=E9=80=9F=E6=95=B0=E5=80=BC=E5=B0=8F=E6=95=B0?= =?UTF-8?q?=E7=82=B9=E5=9E=82=E7=9B=B4=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将数值拆为整数部分(右对齐固定宽度)+ 小数+单位部分(左对齐), 整数位数不同时小数点仍垂直对齐,箭头位置保持不变 --- package/networkview.qml | 47 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/package/networkview.qml b/package/networkview.qml index 4cc8b68..199712f 100644 --- a/package/networkview.qml +++ b/package/networkview.qml @@ -77,6 +77,23 @@ AppletItem { } } + // 拆分速度字符串为整数部分:formatSpeedShort("194.07K") -> "194" + // 用于任务栏双行数值小数点对齐:整数部分右对齐,小数部分左对齐, + // 整数位数不同时小数点仍垂直对齐 + function formatSpeedIntPart(bytesPerSec) { + var str = formatSpeedShort(bytesPerSec) + var idx = str.indexOf('.') + return idx < 0 ? str : str.substring(0, idx) + } + + // 拆分速度字符串为小数+单位部分:formatSpeedShort("194.07K") -> ".07K" + // 与 formatSpeedIntPart 配合,分别渲染实现小数点对齐 + function formatSpeedDecimalPart(bytesPerSec) { + var str = formatSpeedShort(bytesPerSec) + var idx = str.indexOf('.') + return idx < 0 ? "" : str.substring(idx) + } + // 带单位的速度/总量格式化函数(formatSpeed / formatTotal)已移至 NetCommon, // 本文件未直接使用;弹窗与图表窗口经 common.formatSpeed / common.formatTotal 调用 @@ -103,6 +120,8 @@ AppletItem { // 设计原因:箭头与数值作为一组固定在左侧,数值左对齐紧贴箭头; // 不给每行固定高度,让 RowLayout 按内容自然高度排列, // 整组垂直居中于 dock 区域,避免两行间出现过大间隙 + // 小数点对齐:整数部分右对齐固定宽度,小数部分左对齐, + // 整数位数不同时小数点仍垂直对齐 Column { visible: !root.isVerticalDock anchors.verticalCenter: parent.verticalCenter @@ -121,8 +140,20 @@ AppletItem { Layout.alignment: Qt.AlignVCenter } + // 整数部分:右对齐固定宽度,与小数点对齐 Text { - text: root.formatSpeedShort(root.downloadSpeed) + text: root.formatSpeedIntPart(root.downloadSpeed) + font.pixelSize: root.dockSize * 0.25 + font.weight: Font.Medium + color: root.speedTextColor + Layout.alignment: Qt.AlignVCenter + Layout.preferredWidth: root.dockSize * 0.55 + horizontalAlignment: Text.AlignRight + } + + // 小数+单位部分:左对齐,紧跟整数部分 + Text { + text: root.formatSpeedDecimalPart(root.downloadSpeed) font.pixelSize: root.dockSize * 0.25 font.weight: Font.Medium color: root.speedTextColor @@ -142,8 +173,20 @@ AppletItem { Layout.alignment: Qt.AlignVCenter } + // 整数部分:右对齐固定宽度,与小数点对齐 Text { - text: root.formatSpeedShort(root.uploadSpeed) + text: root.formatSpeedIntPart(root.uploadSpeed) + font.pixelSize: root.dockSize * 0.25 + font.weight: Font.Medium + color: root.speedTextColor + Layout.alignment: Qt.AlignVCenter + Layout.preferredWidth: root.dockSize * 0.55 + horizontalAlignment: Text.AlignRight + } + + // 小数+单位部分:左对齐,紧跟整数部分 + Text { + text: root.formatSpeedDecimalPart(root.uploadSpeed) font.pixelSize: root.dockSize * 0.25 font.weight: Font.Medium color: root.speedTextColor