Может ли кто-нибудь дать мне представление о создании механизма фильтрации (доступного в Microsoft Excel) в QTableWidget?
Всякий раз, когда я нажимаю на имя столбца, я хочу, чтобы механизм фильтрации заголовков автоматически активировался для этой таблицы.
Я строю на Windows.
ОБНОВЛЕНИЕ Вот частичная реализация, которая у меня есть. Но мне нужна помощь с реализацией слота testanother(const QString &text)
для отображения совпадающих данных в таблице и скрытия несовпадающих данных.
bool TableData::filterSlot() {
int columnCount = this->tablewidget->columnCount();
int rowCount = this->tablewidget->rowCount();
QStringList filterList;
QString temp_string;
qDebug()<<"Count inside filter slot is";
qDebug()<<rowCount<<":"<<columnCount;
for(int c = 0; c<columnCount;c++) {
for(int r = 0; r<rowCount;r++) {
temp_string = this->tablewidget->item(r,c)->text();
if(!filterList.contains(temp_string))
filterList << temp_string;
}
filterList << "None";
combo = new QComboBox(tablewidget);
combo->addItems(filterList);
combo->setCurrentIndex(filterList.count()-1);
this->tablewidget->setCellWidget(0,c,combo);
filterList.clear();
connect(combo,SIGNAL(activated(const QString &)),
this,SLOT(testAnother(const QString &)));
}
return true;
}
void TableData::testAnother(const QString &text) {
int c = sender()->objectName().toInt();
}