Здравствуйте.
Есть большая таблица в БД, которую требуется перечитывать каждые n секунд.
Чтобы графика не подвисала на время обновления таблицы, я вынес её в дополнительный поток.
Проблема в том, что QTableView обображает таблицу, а затем ещё столько же пустых строк.
Откуда беруться эти дополнительные строки ?
Как от них избавиться ?
MyThread.h#ifndef MYTHREAD_H
#define MYTHREAD_H
#include <QThread>
#include <QSqlQueryModel>
class MyThread : public QThread
{
public:
void run();
QSqlQueryModel* MyThread::model();
protected:
QSqlQueryModel m_model;
};
#endif
MyThread.cpp#include "MyThread.h"
void MyThread::run()
{
m_model.setQuery("select * from person");
m_model.setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
m_model.setHeaderData(1, Qt::Horizontal, QObject::tr("First name"));
m_model.setHeaderData(2, Qt::Horizontal, QObject::tr("Last name"));
}
QSqlQueryModel* MyThread::model()
{
return (&m_model);
}
main.cpp#include <QtGui>
#include "connection.h"
#include "MyThread.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
if (!createConnection())
return 1;
MyThread myThread;
QTableView *view = new QTableView;
view->setModel(myThread.model());
view->resize(400,400);
view->show();
myThread.start();
return app.exec();
}