refactoring

This commit is contained in:
2025-07-04 04:10:20 +07:00
parent d11dcdd885
commit b81eb7cb05

View File

@@ -304,12 +304,18 @@ void MainWindows::createUIElements() {
m_table->setItem(i, 0, new QTableWidgetItem(label)); m_table->setItem(i, 0, new QTableWidgetItem(label));
if (i < m_buttonCount) { if (i < m_buttonCount) {
auto* container = new QWidget();
auto* containerLayout = new QHBoxLayout(container);
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); button->setCheckable(true);
button->setMaximumHeight(button->height() - 5);
containerLayout->addWidget(button);
containerLayout->setAlignment(Qt::AlignCenter);
containerLayout->setContentsMargins(0, 0, 0, 0);
m_buttons.append(button); m_buttons.append(button);
m_buttonValues.append(0); m_buttonValues.append(0);
m_table->setCellWidget(i, 1, button); m_table->setCellWidget(i, 1, container);
connect(button, &QPushButton::clicked, this, [this, i]() { connect(button, &QPushButton::clicked, this, [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];
@@ -327,11 +333,16 @@ void MainWindows::createUIElements() {
} }
if (i < m_indicatorCount) { if (i < m_indicatorCount) {
auto* square = new ColoredSquare(this); auto* container = new QWidget();
square->setFixedSize(m_table->rowHeight(i), m_table->rowHeight(i)); auto* containerLayout = new QHBoxLayout(container);
auto* square = new ColoredSquare(container);
square->setFixedSize(m_table->rowHeight(i) - 4, m_table->rowHeight(i) - 4); // Немного уменьшаем размер
containerLayout->addWidget(square);
containerLayout->setAlignment(Qt::AlignCenter);
containerLayout->setContentsMargins(0, 0, 0, 0);
m_squares.append(square); m_squares.append(square);
m_colorIndices.append(0); m_colorIndices.append(0);
m_table->setCellWidget(i, 2, square); m_table->setCellWidget(i, 2, container);
// Add status text cell // Add status text cell
const auto statusItem = new QTableWidgetItem("?"); const auto statusItem = new QTableWidgetItem("?");
@@ -355,7 +366,7 @@ void MainWindows::createUIElements() {
mainLayout->setContentsMargins(0, 0, 0, 0); mainLayout->setContentsMargins(0, 0, 0, 0);
// Обновляем расчет размера окна с учетом статусной строки // Обновляем расчет размера окна с учетом статусной строки
int totalWidth = m_table->horizontalHeader()->length() + 20; int totalWidth = m_table->horizontalHeader()->length() + 4;
int totalHeight = m_table->verticalHeader()->length() + int totalHeight = m_table->verticalHeader()->length() +
m_connectButton->height() + m_connectButton->height() +
m_statusLabel->sizeHint().height() + 20; m_statusLabel->sizeHint().height() + 20;