调试初版

This commit is contained in:
xu
2026-10-14 18:22:41 +08:00
parent d3a355bd3f
commit e5efdea06e
26 changed files with 289 additions and 140 deletions
+18 -5
View File
@@ -82,7 +82,7 @@ struct Telemetry {
bool armHomed = false; // 是否已回位(用于底盘“机械臂未回位”告警)
// 洗消
QString washMode = "--"; // 消除作业 / 消毒作业
QString washMode = "--"; // 手动消除 / 手动消毒
bool washStart = false; // 洗消启停反馈
double flowA = 0.0; // A 药剂流量 L/min
double flowB = 0.0; // B 药剂流量 L/min
@@ -150,8 +150,22 @@ void stopBlink(QWidget* w, const char* prop = "blink");
// 退出/取消按钮预设样式:被选中(悬停/按下/焦点)时红底白字
QString cancelButtonStyle(int fontPx = 60);
// ===================== 按钮焦点光圈 =====================
// 全局事件过滤器:任意 QPushButton 获得焦点时,在其四周加一圈发光(QSS 无法实现光晕)
// ===================== 本机按键 =====================
// 面板只提供 5 个键:Tab、Shift+Tab、空格、方向上、方向下。
// 新增按键或调整键位只改这一处。
namespace Keys {
inline bool tab(int k) { return k == Qt::Key_Tab; }
inline bool backtab(int k) { return k == Qt::Key_Backtab; } // Shift+Tab
inline bool shifted(int mods) { return (mods & Qt::ShiftModifier) != 0; }
inline bool space(int k) { return k == Qt::Key_Space; }
inline bool up(int k) { return k == Qt::Key_Up; }
inline bool down(int k) { return k == Qt::Key_Down; }
}
// ===================== 按钮焦点(选中)光圈 =====================
// 全局事件过滤器:任意 QPushButton 获得焦点时,在其四周加一圈发光;
// 同时把"触摸/点击"与"Tab"归一到同一个焦点,并清除触摸残留在按钮上的悬停态,
// 保证任意时刻只有一个按钮呈选中样式(新的操作覆盖原来的)。
class ButtonFocusGlow : public QObject
{
Q_OBJECT
@@ -169,8 +183,7 @@ private:
void installButtonFocusGlow(QApplication* app);
// ===================== 方向键(旋钮)隔离 =====================
// 方向键在本机是"旋钮"键位,只由 ParamControl 用来调值。但 QAbstractButton 会把
// 方向键当成沿焦点链换焦(等同 Tab/Shift+Tab),停在按钮上时按方向键焦点会乱跳。
// 上/下方向键在本机是"旋钮"键位,只由 ParamControl 用来调值。
// 这个全局过滤器把"焦点在按钮上时"的方向键吞掉,方向键只做调值、换焦只走 Tab。
class ArrowKeyGuard : public QObject
{