From 950d0d0386df2a39e39e72b0e47a1d32be64e140 Mon Sep 17 00:00:00 2001 From: Byons Date: Sat, 22 Aug 2026 09:00:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=20=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- InkJetPrinter.cpp | 6 +++--- mainwidget.cpp | 18 +++++++++++++++++- mainwidget.h | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/InkJetPrinter.cpp b/InkJetPrinter.cpp index 35618b3..f215044 100644 --- a/InkJetPrinter.cpp +++ b/InkJetPrinter.cpp @@ -2645,7 +2645,7 @@ void InkJetPrinter::rebootApp() sysPara->devOp->controlInkValve(false); sysPara->devOp->controlInkValvePWM(false); } - m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i)); + m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i), false); MySleep(1000); } } @@ -2678,7 +2678,7 @@ void InkJetPrinter::rebootApp() { if(i==9) sysPara->devOp->controlReclaimTankOpen(false); - m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i)); + m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i), false); MySleep(1000); } } @@ -2704,7 +2704,7 @@ void InkJetPrinter::rebootApp() sysPara->para.gearPumpValue = 0; sysPara->devOp->WriteMoterPump(); } - m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i)); + m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i), false); MySleep(1000); } } diff --git a/mainwidget.cpp b/mainwidget.cpp index 72f152b..94464c3 100644 --- a/mainwidget.cpp +++ b/mainwidget.cpp @@ -394,7 +394,7 @@ void MainWidget::powerOffConfirmed(){ qApp->exit(0); } -void MainWidget::setRunStatus(QString str) +void MainWidget::setRunStatus(QString str, bool enbRoll) { // 自检完成后,timerHandler中会发送停止打印的命令,导致“停止打印,自动关闭高压.”顶替掉“自检完成!!!”的情况 if(ui.lb_nozzleState->text() == qApp->translate("InkJetPrinter", "自检完成!!!") && @@ -402,6 +402,20 @@ void MainWidget::setRunStatus(QString str) return; } + qDebug() << str; + // 如果禁用走马灯(enbRoll == false),直接在label上显示文本(即使过长) + if (!enbRoll) { + if (ui.lb_nozzleState) { + // 先停止任何走马灯效果,保证文本直接显示 + stopNozzleStateMarquee(); + ui.lb_nozzleState->setAlignment(Qt::AlignVCenter | Qt::AlignLeft); + ui.lb_nozzleState->setText(str); + ui.lb_nozzleState->update(); + } + return; + } + + // 使用走马灯显示长文本 updateNozzleStateMarquee(str); } @@ -447,6 +461,8 @@ void MainWidget::updateNozzleStateMarquee(const QString& str) m_nozzleStateMarqueeGapPx = qMax(20, labelWidth / 2); m_nozzleStateMarqueeOffsetPx = 0; m_nozzleStateMarqueeEnabled = true; + // 为走马灯绘制恢复居中对齐 + ui.lb_nozzleState->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter); ui.lb_nozzleState->setText(QString()); ui.lb_nozzleState->update(); diff --git a/mainwidget.h b/mainwidget.h index 6a4ce78..b4f186b 100644 --- a/mainwidget.h +++ b/mainwidget.h @@ -82,7 +82,7 @@ public: int imageToPrintData(QImage& img, int startX, int startY); void generateCharRamData(); - void setRunStatus(QString str); + void setRunStatus(QString str, bool enbRoll = true); void enablePrintButton(bool); int getCurrPrintStatus();