From 32b1ba39392d1be1105a7e67c0953ffc74d96cd6 Mon Sep 17 00:00:00 2001 From: lvjunjie Date: Tue, 29 Sep 2026 17:30:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(nmNum):=20=E8=A1=A5=E5=85=85=E7=BD=91?= =?UTF-8?q?=E6=A0=BC=E5=B0=BA=E5=AF=B8=E4=BF=9D=E5=AD=98=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=92=8C=E4=B8=AD=E6=96=87=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 保存前拦截空值、非数字、非正数及非有限值,避免无效设置被静默忽略 - 输入错误时保留设置窗口和原有网格尺寸,允许纠正后重新保存 - 补充中文错误提示并同步编译翻译资源 - 通过 14 项对话框验证,覆盖无效输入、有效数值及取消操作 --- Bin/Config/Lang/cn/nmNum_cn.qm | Bin 147143 -> 147326 bytes Bin/Config/Lang/cn/nmNum_cn.ts | 8 ++++++++ Src/nmNum/nmSubWxs/nmWxGridDlg.cpp | 9 +++++++++ 3 files changed, 17 insertions(+) diff --git a/Bin/Config/Lang/cn/nmNum_cn.qm b/Bin/Config/Lang/cn/nmNum_cn.qm index c3daf82477005f5eef97c00e171e3cc69670b6ee..4c6dfbfc5c98350eb79752b0b99b6d96f343fb36 100644 GIT binary patch delta 5527 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 Rh(-L0Tw;)wmqXZy{{!0g|L*_* delta 5443 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 z z3g{Pc&!cEj$Hii!c^Cs_E?s26pDr^QW|5pNwp-B*aAK6$VYD}pznjIsY#5D>b{0F? z4F!_lxL>#Y_VVCF;y(nS0#q;+P)q_4h8T%P7)f!a?^%+;KOWP%#=b?-FlVs2&a zB=M{7z)q!H;{OE4l47qe65~aZfcI$o_!E*q=>try5E^4X%;wN?$$Cr{_-Z6sADjX( zCS0<<+7t(ZT1jZT2FN^tWQ)EJkcN%4(_Br&)Wo8ftxU3KZzmAnR!Nk{XROz5lIT&m zi{2~NiJ@|`{|b?mjVrdZ0(Tb&$S2gqJ`F2IB^O|S$Z2D;}SLL zJ26a8^3^>CThH;5_OwPIyZt2X*CUWooG=LkZ*n{*tPBE%naT;Pwj)zGk!e1FxgF2o zk(?;>Es)cvIqneFT9a>_e0>9uMb9}!+0P)U;S93Sebpm5bHmj@h6QmJBLMem%k^tj zV({EF<}9n8p=LL5y4|C&|2xeMA21!j$A)t%aRHe0lpAv$WQmSjdK{mBxzDXINWu5k@cfv}t?)#Pw>fcZ zoS$IkiTIPEkjj)_Za74A#4#{0D?dCZa z2MTAYzOykF^Uy95WjfEN^QHRu96t2#B54>z?KQ5ge3k@35Dc#o}qclH6x^Fjw_H38#pSBK2@-S(vqdSlQ zTj`ACOqM7^#NwapK8IMnv=Ji1F%(x}Jd;|lvL?JD@ zft4b^jI#ZmIH9y$mx{B{5$e@nBfS(Lt$2?uy(pA!?r&;zD^U6lCoOPZ%ro|lw0Q}J z!lyknx4(wTPN8-EO_|!0w6nj)=u(+X#r8!5voh7Gaab81$yB$jumnw|qpeMue{yMn zwUwT!OuGjAzHds|Q0HtQUt4I5wa(m4HsSXYfP!sZB=TsP=K*x#o^w14m9){?Q9ot5 zY~D4@t)^qLAcAt0X+-U9CUWCt5h2(i7k{BqHp49bJ}Qe7R09bOl*LDsVBc0QJFMve z@JG5V$?6)mp^dcBM#In~suj6#va)OTApm{zWw*SpqtWir(F2_Hq_WPr z7(rwA$-ak%qn-ne8lW@pC6{HQ)K0i5H;Z16y{BAm(J27fn=kJl+6pAioz@M|Sez-5 zkJ3nitok5#s>LPJm&nHmBe5q~!1LP}YB^Bjabcg_Gja`(AVZ$N=kPp{!LzAD?wwJO zPH&QXXQ5&wrN}2fxd3GK82RL>d$Ha8$g{nk#tc+*1LgB7F*Kf?qXh$Xq(5yM7#Maw zMIL_~r@09p@Ur#J zhg{$pA0|Jcd;!FzRi56A7QJ^}em)$fuEtS*r51aS)FJX~LAc)67I}$i3ed7aQuA)| z>&`5;C2c&fO_pB|O~3}BlxN&b+BQhT>{&xiwBAD+YUOnY9-(ktmcPhbja@y+-vnal zzI-l!Q|5^Sf3*DlXeB`NEcwSgEbKq#(L}A904>mJnS?d8Noz&?sDVyn#9mOW@WGUd zFI5EFN8^93wkd*l;{1^Eiu&rTY;}rVlX{_2m@A?bTL2Qb@jNS0#1e1x!!#l#5iAIr}#@A2;{meZPE>QAE9V+#w+(4MawGOv)LoX$0f}` zf;|;HE;>WM&C8;H7F~*4VQC4ih`@0L36_+t=Udxmf_1*A<`+2UMs;vBU7D&-SYB0o= z`IFeySe}<^V)(QvKNJ gh(%s+F}99v+g{q`y|g3#yW`Fml9;^EBEp9KA6s4GssI20 diff --git a/Bin/Config/Lang/cn/nmNum_cn.ts b/Bin/Config/Lang/cn/nmNum_cn.ts index 37b1bbbf..ad1f6241 100644 --- a/Bin/Config/Lang/cn/nmNum_cn.ts +++ b/Bin/Config/Lang/cn/nmNum_cn.ts @@ -5262,6 +5262,14 @@ Please check your input coordinates. nmWxGridDlg + + Input Error + 输入错误 + + + Grid size must be a finite number greater than zero. + 网格大小必须是大于零的有限数值。 + GridType 网格类型: diff --git a/Src/nmNum/nmSubWxs/nmWxGridDlg.cpp b/Src/nmNum/nmSubWxs/nmWxGridDlg.cpp index b0363390..05c58cb7 100644 --- a/Src/nmNum/nmSubWxs/nmWxGridDlg.cpp +++ b/Src/nmNum/nmSubWxs/nmWxGridDlg.cpp @@ -5,8 +5,10 @@ #include #include #include +#include #include #include +#include nmWxGridDlg::nmWxGridDlg(double *pPebiGridControl): m_pPebiGridControl(pPebiGridControl), @@ -20,6 +22,13 @@ nmWxGridDlg::nmWxGridDlg(double *pPebiGridControl): void nmWxGridDlg::on_save() { + // 无效文本转换为零;保存前统一拦截非正数和非有限值,保留原有网格设置。 + if (!qIsFinite(m_dPebiGridControlTmp) || m_dPebiGridControlTmp <= 0.0) { + QMessageBox::warning(this, tr("Input Error"), + tr("Grid size must be a finite number greater than zero.")); + return; + } + // 保存PEBI GridControl, GridType固定为PEBI, 仅在界面展示. if (m_pPebiGridControl != NULL) { *m_pPebiGridControl = m_dPebiGridControlTmp;