#pragma once #include #include #include #include #include class MyTableWidget : public QTableWidget { Q_OBJECT public: explicit MyTableWidget(QWidget *parent = 0); void leaveEvent(QEvent *event); void setRowColor(int row, QColor color); void addTool(int rowindex,QString toolname, QString toolvalue) { QWidget* widget = new QWidget; QCheckBox* checkbox = new QCheckBox(widget); checkbox->setChecked(true); checkbox->setObjectName(QString::number(rowindex)); checkbox->setStyleSheet("background: transparent;"); checkbox->setMinimumSize(16, 16); checkbox->setMaximumSize(16, 16); connect(checkbox, SIGNAL(clicked(bool)), this, SLOT(updateClick(bool))); QHBoxLayout* layout = new QHBoxLayout(widget); layout->addWidget(checkbox); layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); widget->setLayout(layout); this->setRowCount(rowindex + 1); this->setCellWidget(rowindex, 0, widget); this->setItem(rowindex, 1, new QTableWidgetItem(toolname)); this->item(rowindex, 1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); this->setItem(rowindex, 2, new QTableWidgetItem(toolvalue)); this->item(rowindex, 2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); } private slots: void cellenterSlot(int row, int col); void updateClick(bool ok); signals: void sigClick(bool ok); private: QColor lastrowbgcolor; int lastrow; };