void MainWindow::on_**tableView_clicked**(const QModelIndex &index)
{
if(!index.isValid()){
return;
}
btnEdit->setEnabled(true);
btnDelete->setEnabled(true);
btnSave->setEnabled(true);
btnImg->setEnabled(true);
QString id=mModel->data(mModel->index(index.row(),0)).toString();
QSqlQuery q;
q.exec("SELECT id_elemento, id_grupo, id_tipo, nombre, descripcion, icono FROM elemento WHERE id_elemento= '" + id +"';");
qDebug()<<id;
q.first();
qDebug() << q.lastError();
lineCod->setText(q.value(0).toString());
lineGroup->setText(q.value(1).toString());
lineType->setText(q.value(2).toString());
lineName->setText(q.value(3).toString());
textDescription->setPlainText(q.value(4).toString());
lineImg->setText(q.value(5).toByteArray());
QPixmap pixmap;
if(!pixmap.loadFromData(q.value(5).toByteArray())){
labelImg->setText("<b>Error de Imagen</b>");
return;
}
labelImg->setScaledContents(true);
int w = labelImg->width();
int h = labelImg->height();
w=200;
h=100;
labelImg->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
labelImg->setAlignment(Qt::AlignCenter);
labelImg->setPixmap(pixmap.scaled(w,h,Qt::KeepAspectRatio));
}
void MainWindow::on_btnCargar_clicked()
{
mModel=new QSqlQueryModel(this);
mModel->setQuery("SELECT id,grupo,tipo,nombre,descripcion from vertical ORDER BY id;");
mModel->setHeaderData(0,Qt::Horizontal,tr("ID"));
mModel->setHeaderData(1,Qt::Horizontal,tr("GRUPO"));
mModel->setHeaderData(2,Qt::Horizontal,tr("TIPO"));
mModel->setHeaderData(3,Qt::Horizontal,tr("NOMBRE"));
mModel->setHeaderData(4,Qt::Horizontal,tr("DESCRIPCIÓN"));
tableView->setModel(mModel);
tableView->resizeColumnsToContents();
tableView->setSortingEnabled(true);
proxy = new QSortFilterProxyModel(this);
proxy->setSourceModel(mModel);
tableView->setModel(proxy);
tableView->show();
}
Everything works, the problem is that when I order it through one of the columns with the code
tableView->setSortingEnabled(true);
proxy = new QSortFilterProxyModel(this);
proxy->setSourceModel(mModel);
tableView->setModel(proxy);
The one that I select to show does not correspond to the one that shows the table, that is, it does not take into account the previously selected order