mytablewidget.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include <QTableWidget>
  3. #include <QHeaderView>
  4. #include <QDebug>
  5. #include <QCheckBox>
  6. #include <QHBoxLayout>
  7. class MyTableWidget : public QTableWidget
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit MyTableWidget(QWidget *parent = 0);
  12. void leaveEvent(QEvent *event);
  13. void setRowColor(int row, QColor color);
  14. void addTool(int rowindex,QString toolname, QString toolvalue)
  15. {
  16. QWidget* widget = new QWidget;
  17. QCheckBox* checkbox = new QCheckBox(widget);
  18. checkbox->setChecked(true);
  19. checkbox->setObjectName(QString::number(rowindex));
  20. checkbox->setStyleSheet("background: transparent;");
  21. checkbox->setMinimumSize(16, 16);
  22. checkbox->setMaximumSize(16, 16);
  23. connect(checkbox, SIGNAL(clicked(bool)), this, SLOT(updateClick(bool)));
  24. QHBoxLayout* layout = new QHBoxLayout(widget);
  25. layout->addWidget(checkbox);
  26. layout->setSpacing(0);
  27. layout->setContentsMargins(0, 0, 0, 0);
  28. widget->setLayout(layout);
  29. this->setRowCount(rowindex + 1);
  30. this->setCellWidget(rowindex, 0, widget);
  31. this->setItem(rowindex, 1, new QTableWidgetItem(QString::number(rowindex)));
  32. this->item(rowindex, 1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
  33. if (rowindex > 0)
  34. {
  35. this->setItem(rowindex, 2, new QTableWidgetItem(QString::number(rowindex - 1)));
  36. this->item(rowindex, 2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
  37. }
  38. this->setItem(rowindex, 3, new QTableWidgetItem(toolname));
  39. this->item(rowindex, 3)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
  40. this->setItem(rowindex, 4, new QTableWidgetItem(toolvalue));
  41. this->item(rowindex, 4)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
  42. }
  43. private slots:
  44. void cellenterSlot(int row, int col);
  45. void updateClick(bool ok);
  46. signals:
  47. void sigClick(bool ok);
  48. private:
  49. QColor lastrowbgcolor;
  50. int lastrow;
  51. };