12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #pragma once
- #include <QTableWidget>
- #include <QHeaderView>
- #include <QDebug>
- #include <QCheckBox>
- #include <QHBoxLayout>
- 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(QString::number(rowindex)));
- this->item(rowindex, 1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
- if (rowindex > 0)
- {
- this->setItem(rowindex, 2, new QTableWidgetItem(QString::number(rowindex - 1)));
- this->item(rowindex, 2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
- }
- this->setItem(rowindex, 3, new QTableWidgetItem(toolname));
- this->item(rowindex, 3)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
- this->setItem(rowindex, 4, new QTableWidgetItem(toolvalue));
- this->item(rowindex, 4)->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;
- };
|