#include SpinTable::SpinTable(int rows, int columns, QWidget* parent) { this->setParent(parent); buttonAdd = new QPushButton("Add"); buttonClear = new QPushButton("Clear"); table = new QTableWidget(rows, columns, this); table->setAutoFillBackground( false ); table->setShowGrid( false ); table->setSortingEnabled( true ); table->setWordWrap( true ); table->setCornerButtonEnabled( false ); table->setSelectionBehavior( QAbstractItemView::SelectRows ); table->setSelectionMode( QAbstractItemView::SingleSelection ); table->setFocusPolicy( Qt::NoFocus ); table->setAlternatingRowColors( true ); table->horizontalHeader()->setSectionResizeMode( QHeaderView::Stretch ); table->horizontalHeader()->setCascadingSectionResizes( true ); table->horizontalHeader()->setHighlightSections( false ); table->verticalHeader()->setVisible( false ); layout = new QGridLayout( this ); layout->addWidget(table, 0, 0, 1, 2); layout->addWidget(buttonAdd, 1, 0, 1, 1); layout->addWidget(buttonClear, 1, 1, 1, 1); this->setLayout(layout); QObject::connect(buttonAdd, &QPushButton::clicked, this, [&]() { if (table->rowCount() < 1 ) table->setRowCount(1 ); else table->setRowCount(table->rowCount() + 1 ); table->setItem(table->rowCount() - 1, 0, new QTableWidgetItem() ); table->selectRow(table->rowCount() - 1 ); } ); QObject::connect(buttonClear, &QPushButton::clicked, this, [&]() { table->setRowCount(0); } ); }