added setCheckable
This commit is contained in:
@@ -217,6 +217,8 @@ void Mainwindows::onReadReady() {
|
|||||||
if (!reply) return;
|
if (!reply) return;
|
||||||
|
|
||||||
if (reply->error() == QModbusDevice::NoError) {
|
if (reply->error() == QModbusDevice::NoError) {
|
||||||
|
m_responseCounter++;
|
||||||
|
updateStatusBar();
|
||||||
const QModbusDataUnit unit = reply->result();
|
const QModbusDataUnit unit = reply->result();
|
||||||
int address = unit.startAddress();
|
int address = unit.startAddress();
|
||||||
int value = unit.value(0);
|
int value = unit.value(0);
|
||||||
@@ -240,8 +242,9 @@ void Mainwindows::onReadReady() {
|
|||||||
if (address == m_buttonRegisters[i]) {
|
if (address == m_buttonRegisters[i]) {
|
||||||
m_buttonValues[i] = value;
|
m_buttonValues[i] = value;
|
||||||
bool bitState = (value >> m_buttonBits[i]) & 1;
|
bool bitState = (value >> m_buttonBits[i]) & 1;
|
||||||
// Проверяем, есть ли индикатор для этой кнопки
|
m_buttons[i]->setChecked(bitState); // Устанавливаем состояние кнопки
|
||||||
bool hasIndicator = false;
|
bool hasIndicator = false;
|
||||||
|
// Проверяем, есть ли индикатор для этой кнопки
|
||||||
for (int j = 0; j < m_indicatorRegisters.size(); ++j) {
|
for (int j = 0; j < m_indicatorRegisters.size(); ++j) {
|
||||||
if (m_indicatorLabels[j].contains(m_buttonLabels[i], Qt::CaseInsensitive)) {
|
if (m_indicatorLabels[j].contains(m_buttonLabels[i], Qt::CaseInsensitive)) {
|
||||||
hasIndicator = true;
|
hasIndicator = true;
|
||||||
@@ -298,10 +301,11 @@ void Mainwindows::createUIElements() {
|
|||||||
|
|
||||||
if (i < m_buttonCount) {
|
if (i < m_buttonCount) {
|
||||||
auto* button = new QPushButton(QString("Register %1 Bit %2").arg(m_buttonRegisters[i]).arg(m_buttonBits[i]), this);
|
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_buttons.append(button);
|
||||||
m_buttonValues.append(0);
|
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]() {
|
connect(button, &QPushButton::clicked, [this, i]() {
|
||||||
QModbusDataUnit writeUnit(QModbusDataUnit::HoldingRegisters, m_buttonRegisters[i], 1);
|
QModbusDataUnit writeUnit(QModbusDataUnit::HoldingRegisters, m_buttonRegisters[i], 1);
|
||||||
int currentValue = m_buttonValues[i];
|
int currentValue = m_buttonValues[i];
|
||||||
|
|||||||
Reference in New Issue
Block a user