You could connect to signal QHeaderView::sectionMoved() and rename headers every time a section movement occurs. Just make sure you create and set header items.
// it is important to create and set header items
// otherwise horizontalHeaderItem(int) and verticalHeaderItem(int) will always return 0
for (int r = 0; r < rowCount(); ++r)
{
setVerticalHeaderItem(r, item);
}
for (int c = 0; c < columnCount(); ++c)
{
setHorizontalHeaderItem(c, item);
}
connect(horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(renameHeaders()));
connect(verticalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(renameHeaders()));
// it is important to create and set header items
// otherwise horizontalHeaderItem(int) and verticalHeaderItem(int) will always return 0
for (int r = 0; r < rowCount(); ++r)
{
QTableWidgetItem* item = new QTableWidgetItem(QString::number(r));
setVerticalHeaderItem(r, item);
}
for (int c = 0; c < columnCount(); ++c)
{
QTableWidgetItem* item = new QTableWidgetItem(QString::number(c));
setHorizontalHeaderItem(c, item);
}
connect(horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(renameHeaders()));
connect(verticalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(renameHeaders()));
To copy to clipboard, switch view to plain text mode
// the slot doing the renaming
void TableWidget::renameHeaders()
{
// "convert" logical indexes to visual indexes
for (int r = 0; r < rowCount(); ++r)
verticalHeaderItem
(r
)->setText
(QString::number(verticalHeader
()->visualIndex
(r
)));
for (int c = 0; c < columnCount(); ++c)
horizontalHeaderItem
(c
)->setText
(QString::number(horizontalHeader
()->visualIndex
(c
)));
}
// the slot doing the renaming
void TableWidget::renameHeaders()
{
// "convert" logical indexes to visual indexes
for (int r = 0; r < rowCount(); ++r)
verticalHeaderItem(r)->setText(QString::number(verticalHeader()->visualIndex(r)));
for (int c = 0; c < columnCount(); ++c)
horizontalHeaderItem(c)->setText(QString::number(horizontalHeader()->visualIndex(c)));
}
To copy to clipboard, switch view to plain text mode
Bookmarks