Название: Навигация по строкам в QTableView Отправлено: ASeN от Май 22, 2006, 18:17 Следующий код:
QTableView *view = new QTableView; view->setModel(model); view->show(); покажет набор данных в табличной форме. Как можно организовать перемещение по стокам. Например: к первой, к последней, следующая, .... Спасибо. Название: Навигация по строкам в QTableView Отправлено: Steven_Orko от Май 23, 2006, 00:57 Могу тебе целый проект с этим скинуть, если хошь. Там и перемещение есть, и удаление... и т.д. и т.п. Куда кидать?
добавлено спустя 3 минуты: Код: void TMyHeadWindow::selectFirst() Название: Навигация по строкам в QTableView Отправлено: crocus от Май 23, 2006, 02:22 Если не трудно скинь crocus13[собака]yandex.ru. Заранее благодарю!!
Название: Навигация по строкам в QTableView Отправлено: danius от Май 23, 2006, 06:26 Имне plz: danius <at> rambler . ru
Название: Навигация по строкам в QTableView Отправлено: ASeN от Май 23, 2006, 17:35 Спасибо за пример. Очень помог.
Проект пожайлуста скинь на asn00[]mail.ru Мой пример: int main(int argc, char **argv) { QApplication app(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=test.mdb"); if (db.open()){ QTime t; t.start(); //Вкл. Секундомер QSqlQueryModel *model = new QSqlQueryModel; model->setQuery("select * from test_table"); QTableView *view = new QTableView; view->setModel(model); view->resize(600, 400); bool can_ret_size = db.driver()->hasFeature(QSqlDriver::QuerySize); if(!can_ret_size){ //к сожалению у нас будет FALSE //поэтому запукаю это !!!! while (model->canFetchMore()){ model->fetchMore(); } //иначе model->rowCount() вернет только 256, что и //написано в ДОКах } int s = model->rowCount(); // теперь model->rowCount() возвратит //верное число строк. QLabel l("Rows : " + QString::number(s), 0); l.show(); //Отобразим кол-во строк в отдельном окне // код от Steven_Orko - переход к последней строке if (model->rowCount() <= 1){ } else { view->setCurrentIndex(model->index(model->rowCount() - 1, 0)); } //Если в табл. порядка 100 тыс. строк, то еще терпимо - СЕКУНДЫ, //а если 5 - 6 млн. - я так и не дождался! //Access переходит к последней строке гораздо быстрее view->setWindowTitle(QString::number(t.elapsed()) + " ms"); view->show(); return app.exec(); db.close(); } return 0; } Проблема думаю в model->fetchMore() т.к. это противоречит самой идее Model/view - извлекать в память столько сколько пользователь сможет увидеть. Может есть другое решение? Название: Навигация по строкам в QTableView Отправлено: Steven_Orko от Май 23, 2006, 18:41 Обещанный проект отправил по указанным адресам. )))
Извиняюсь за "огромное" количество комментариев ))) Надо было быстро и до них как-то руки не доходили )))) Название: Навигация по строкам в QTableView Отправлено: Dimich от Май 25, 2006, 09:07 Буду благодарен, если скинешь в dimich33[собака]mail.ru
|