Russian Qt Forum

Qt => Общие вопросы => Тема начата: gigabyte от Март 22, 2010, 17:34



Название: Быстродействие QUiLoader
Отправлено: gigabyte от Март 22, 2010, 17:34
Это сообщение - продолжение моего поста в секции QtScript на которое никто так и не ответил.
Теперь вопрос звучит следующим образом:
Есть форма загружаэмая через QUiLoader, и есть та же форма скомпиленная через uic и засунутая в программу.
На этой форме находится QTableView с данными  (много данных)
Так вот, если смотреть на форму загруженную через QUiLoader то создается ощущение что при каждом движении она пересоздается заново т.е. даже изменение ширины колонки или переход с одной ячейки на другую вызывает 3-5 секундное помутнение рассудка у программы при 100%-й загрузке на проц.
При прочих равных условиях встроенная в проложпение форма работает прекрасно.

Где есть косяк? Есть ли где какой-то класс для кеширования загруженных виджетов или что-то подобное?

Заранее спасибо


Название: Re: Быстродействие QUiLoader
Отправлено: Rcus от Март 22, 2010, 18:34
Ну так это... тестовое приложение собрать и под профайлером прогнать было бы неплохо. А QUiLoader только создает виджеты и задает свойства по .ui файлу. После загрузки его можно удалить.


Название: Re: Быстродействие QUiLoader
Отправлено: gigabyte от Март 22, 2010, 18:49
В том то и проблема шо ганял под профайлером, но он ничего толкового не показывает.
А шоб увидеть шото толковое надо собирать всю Qt с под профайлером
Может кто-то уже сталкивался с этим


Название: Re: Быстродействие QUiLoader
Отправлено: gigabyte от Март 23, 2010, 10:49
Создал тестовое предложение :
Код:
 var db = QSqlDatabase.addDatabase("QSQLITE","temp");
 db.setDatabaseName("./temp.db");
 if(db.open()) {
var loader = new QUiLoader();
var f = new QFile("viewgoods.ui");
if(f.open(QIODevice.OpenMode(QIODevice.ReadOnly))) var viewgoods = loader.load(f);
var tableModel = new QSqlQueryModel(viewgoods)
var query = new QSqlQuery(db);
if(query.exec('select * from localdb')) {
tableModel.setQuery(query);
viewgoods.tableView.setModel(tableModel);            
viewgoods.show();
}
 }
QCoreApplication.exec();
Работает замечательно. Значит проблема у меня в коде. Буду искать


Название: Re: Быстродействие QUiLoader
Отправлено: gigabyte от Март 23, 2010, 16:14
Вопрос снят.
Есть очень интерсное приложение Microsoft Application Verifier котороэ у меня стояло, так вот оно и давало ве эти глюки. Удалил и все начало не то шо бегать - лётать