Russian Qt Forum

Qt => Общие вопросы => Тема начата: pacmanoid от Июнь 29, 2006, 20:40



Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: pacmanoid от Июнь 29, 2006, 20:40
Испытываю затроуднения при переходе с QT3 на QT4, концепция библиотеки сильно изменилась. А посему пишу этот пост. Уважаемые господа модераторы сайта, если можно то нельзя ли прилепить данный пост. Думаю есть еще многие кто сидит и пишит под QT3 и рано или поздно они перейдут на QT4. У них также начнется ломка стереотипов.
Предлагаю сдесь ВСЕМ ЖЕЛАЮЩИМ задавать вопросы типа: Как сделать в QT4 что-то что делал в QT3 так...


Вопрос первый:
Раньше обновлял записи в экземпляре класса QDataTable так:

MyDataTable->refresh();

как это делать в QT4?


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: Admin от Июнь 29, 2006, 22:01
ага можно еще расказать
как я переходил с 1 на 2
2 на 3 и так далее

да я пару прог перевел, взвыл! но что делать, приходится бежать за лошадью :)


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: pacmanoid от Июнь 30, 2006, 07:12
Цитировать

ага можно еще расказать
как я переходил с 1 на 2
2 на 3 и так далее


Я выбирал тему исходя из актуальности на сегоднишний день. QT3 to QT4 сегодня актуально, а Qt1 to QT2 or QT2 to QT3 сейчас не неактуально. Посмотрите сами, большинство вопросов на форуме в основном по QT3 и QT4.


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: Admin от Июнь 30, 2006, 08:48
просто 1 темой тут не обойдешься! :)

если че, задавай конкретный вопрос, попробуем помочь :)


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: pacmanoid от Июнь 30, 2006, 09:03
Цитата: "Admin"
просто 1 темой тут не обойдешься! :)

если че, задавай конкретный вопрос, попробуем помочь :)


Ну я ведь и задал свой первый конкретный вопрос.

Раньше обновлял записи в экземпляре класса QDataTable так:

MyDataTable->refresh();

как это делать в QT4?

понятно что теперь есть просто QTableView и к нему можно прилепить любую модель, например QSqlQeryModel. Предположим я выполнил запрос  


  model = new QSqlQueryModel;

  view = new QTableView;
  view->setModel(model);
  view->setSelectionBehavior ( QAbstractItemView::SelectRows );
  view->setSelectionMode ( QAbstractItemView::SingleSelection );
// Вот этот запрос
  model->setQuery("SELECT * FROM S_BAL ORDER BY KOD");

данные в таблице отобразились

через время я хочу обновить записи в таблиц, так как их туда забрасывает другая программа, демон под Линуксом. И кидает их каждые 15 сек туда. Стало быть надо через время обновлять данные в таблице, чтобы они не теряли актуальности.

Вот в QT3 я делал так:
MyDataTable->refresh();  И в таблице появлялись новые записи.

как это делать в QT4?
неужели надо заново делать model->setQuery("SELECT * FROM S_BAL ORDER BY KOD");


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: LestorN от Июнь 30, 2006, 09:33
Похоже что так делать и надо...
Хотя для QSqlTableModel обновление происходить по select(); это даже в документации описано.


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: Admin от Июнь 30, 2006, 11:53
именно так, или ручками модель перестраивать

щас это напоминает MFC архитектуру document/view


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: pacmanoid от Июнь 30, 2006, 14:06
Ну понятно, надо будет наверное сделать так:

QString sqlStr = "SELECT * FROM S_BAL ORDER BY KOD";

...

А потом где надо то писать:

model->setQuery(sqlStr);

...
Вы так предлагаете?


Название: Переход с QT3 на QT4, или ломка стереотипов
Отправлено: Admin от Июнь 30, 2006, 17:54
подход такой
но я с этими моделями неделю сидел пока вкурил что к чему