From 55759defd7d5e1ab55dee18c9c2a49ec46dc67c9 Mon Sep 17 00:00:00 2001 From: Alekseev Date: Fri, 4 Jul 2025 03:07:57 +0700 Subject: [PATCH] added setCheckable --- Src/mainwindow.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Src/mainwindow.cpp b/Src/mainwindow.cpp index b690cd4..7ee48e1 100644 --- a/Src/mainwindow.cpp +++ b/Src/mainwindow.cpp @@ -217,6 +217,8 @@ void Mainwindows::onReadReady() { if (!reply) return; if (reply->error() == QModbusDevice::NoError) { + m_responseCounter++; + updateStatusBar(); const QModbusDataUnit unit = reply->result(); int address = unit.startAddress(); int value = unit.value(0); @@ -240,8 +242,9 @@ void Mainwindows::onReadReady() { if (address == m_buttonRegisters[i]) { m_buttonValues[i] = value; bool bitState = (value >> m_buttonBits[i]) & 1; - // Проверяем, есть ли индикатор для этой кнопки + m_buttons[i]->setChecked(bitState); // Устанавливаем состояние кнопки bool hasIndicator = false; + // Проверяем, есть ли индикатор для этой кнопки for (int j = 0; j < m_indicatorRegisters.size(); ++j) { if (m_indicatorLabels[j].contains(m_buttonLabels[i], Qt::CaseInsensitive)) { hasIndicator = true; @@ -298,10 +301,11 @@ void Mainwindows::createUIElements() { if (i < m_buttonCount) { auto* button = new QPushButton(QString("Register %1 Bit %2").arg(m_buttonRegisters[i]).arg(m_buttonBits[i]), this); - button->setFont(tableFont); // Устанавливаем шрифт для кнопок + button->setFont(tableFont); + button->setCheckable(true); // Делаем кнопку переключаемой m_buttons.append(button); m_buttonValues.append(0); - m_table->setCellWidget(i, 1, button); // Changed from column 0 to 1 + m_table->setCellWidget(i, 1, button); connect(button, &QPushButton::clicked, [this, i]() { QModbusDataUnit writeUnit(QModbusDataUnit::HoldingRegisters, m_buttonRegisters[i], 1); int currentValue = m_buttonValues[i];