{
public:
virtual void setData
(int role,
const QVariant &value
) {
if (QAbstractTableModel *model
= (this
->tableWidget
() ? qobject_cast<QAbstractTableModel
*>
(this
->tableWidget
()->model
()) : 0)) { model->blockSignals(true);
model->blockSignals(false);
}
}
};
//--
QTableWidgetTest
::QTableWidgetTest(QWidget *parent, Qt
::WFlags flags
){
ui.setupUi(this);
int value= 0;
for (int row= 0; row < table->rowCount(); row++) {
for (int col= 0; col < table->columnCount(); col++) {
table->setItem(row,col,item);
value++;
}
}
}
class MyTableWidgetItem : public QTableWidgetItem
{
public:
explicit MyTableWidgetItem(const QString & text, int type = Type) : QTableWidgetItem(text, type) {}
virtual void setData(int role, const QVariant &value)
{
if (QAbstractTableModel *model = (this->tableWidget() ? qobject_cast<QAbstractTableModel*>(this->tableWidget()->model()) : 0)) {
model->blockSignals(true);
QVariant nullValue;
QTableWidgetItem::setData(role,nullValue);
model->blockSignals(false);
}
QTableWidgetItem::setData(role,value);
}
};
//--
QTableWidgetTest::QTableWidgetTest(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
ui.setupUi(this);
int value= 0;
for (int row= 0; row < table->rowCount(); row++) {
for (int col= 0; col < table->columnCount(); col++) {
QTableWidgetItem *item= new MyTableWidgetItem(QString::number(value));
table->setItem(row,col,item);
value++;
}
}
connect(ui.tableWidget, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(multipleItemsChanged(QTableWidgetItem*)));
}
To copy to clipboard, switch view to plain text mode
Bookmarks