PDA

View Full Version : QTableView Headers problem



giusepped
23rd January 2009, 04:01
Hey guy!
I have a very simple problem:
I display data of an sqlite database in an sqltablemodel + qtableview.



void DatiPannello::setDatabase(const QSqlDatabase &db,const QString &t)
{
database = db;
table = t;
if (model){
delete model;
model = new QSqlTableModel(0,database);
}

initializeModel();
refreshView();
}
void DatiPannello::refreshView()
{
model->setTable(table);

model->select();

proxyModel->setSourceModel(model);

tViewDatiPannello->setModel(proxyModel);

tViewDatiPannello->setColumnHidden(0,true);



}
void DatiPannello::initializeModel()
{
if (model) {
model->setTable(table);
model->setEditStrategy(QSqlTableModel::OnRowChange);
model->select();


model->setHeaderData(1, Qt::Horizontal, tr("Marca"),Qt:: DisplayRole);
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Modello"));
model->setHeaderData(3, Qt::Horizontal, tr("Pnom"));
model->setHeaderData(4, Qt::Horizontal, tr("Voc"));
model->setHeaderData(5, Qt::Horizontal, tr("Isc"));
model->setHeaderData(6, Qt::Horizontal, tr("Imp"));
model->setHeaderData(7, Qt::Horizontal, tr("NOCT"));
model->setHeaderData(8, Qt::Horizontal, tr("Peso"));
model->setHeaderData(9, Qt::Horizontal, tr("Vmp"));
model->setHeaderData(10, Qt::Horizontal, tr("Vmax"));
model->setHeaderData(11, Qt::Horizontal, tr("beta"));
model->setHeaderData(12, Qt::Horizontal, tr("alfa"));
model->setHeaderData(13, Qt::Horizontal, tr("gamma"));
model->setHeaderData(14, Qt::Horizontal, tr("tol."));
model->setHeaderData(15, Qt::Horizontal, tr("H"));
model->setHeaderData(16, Qt::Horizontal, tr("L"));
model->setHeaderData(17, Qt::Horizontal, tr("s"));
model->setHeaderData(18, Qt::Horizontal, tr("efficienza"));


}




}

but I never get the header I set, I get the name of the columns in the database!
Any help, as always, rellay appreciated.

vcp
23rd January 2009, 11:05
Hi,

See my source code, I think that will can help.

Note that the 'setHeaderData' always should be between the 'select' statement. and setModel().


QApplication::setOverrideCursor(QCursor(Qt::WaitCu rsor));
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT LPAD(PV_IDENT,5,'0') AS PV_IDENT, PV_NOME, CONCAT_WS(' ',sys.spISO2EUR(LEFT(PV_DATA,10)),RIGHT(PV_DATA,8) ) AS PV_DATA, PV_OBJ FROM ACPEDVISTA WHERE PV_FLAG = 0 ORDER BY PV_DATA");
model->setHeaderData(0, Qt::Horizontal, tr("Id#"));
model->setHeaderData(1, Qt::Horizontal, tr("Requisitante"));
model->setHeaderData(2, Qt::Horizontal, tr("Data"));
model->setHeaderData(3, Qt::Horizontal, tr("Objeto"));

tviewPedidos->setModel(model);
tviewPedidos->show();
QApplication::restoreOverrideCursor();