crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> как внутри модели менять данные, наследник от QStringListModel
Delphist
  опции профиля:
сообщение 22.8.2008, 12:36
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 41
Регистрация: 4.8.2008
Из: Россия
Пользователь №: 249

Спасибо сказали: 0 раз(а)




Репутация:   0  


есть задача - необходимо вести лог всех изменений моего объекта, для этого была выбрана следующая стратегия: объект генерит сигналы об изменении
в свою очередь конектиться к ним через слоты.

void AppLoggerModel::addRow(const QString &EventName, int nCode, CSharedVariant &Value)
{
    int row = rowCount();
    insertRows(row, 1);
    QString sCode;    
    setData(index(row), Event: " + EventName +  ";  Code=" + sCode.setNum(nCode) + ";  Value: " + Value.asDebugString());
}

void AppLoggerModel::svValueChanged(int nCode, CSharedVariant &Value)
{
    addRow("onValueChanged", nCode, Value);
}

В качестве представления выступает ListView в итоге ListView тормозит, обновления порисходят где то 10 штук в секунду
мож за место
setData(index(row), sName + "; Event: " + EventName + "; Code=" + sCode.setNum(nCode) + "; Value: " + Value.asDebugString());
использовать что-нть другое а?

Сообщение отредактировал Litkevich Yuriy - 29.10.2008, 12:36
Причина редактирования: коррекция названия
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
AD
  опции профиля:
сообщение 22.8.2008, 12:52
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Delphist @ 22.8.2008, 13:36) *
есть задача - необходимо вести лог всех изменений моего объекта, для этого была выбрана следующая стратегия: объект генерит сигналы об изменении
в свою очередь конектиться к ним через слоты.

void AppLoggerModel::addRow(const QString &EventName, int nCode, CSharedVariant &Value)
{
    int row = rowCount();
    insertRows(row, 1);
    QString sCode;    
    setData(index(row), Event: " + EventName +  ";  Code=" + sCode.setNum(nCode) + ";  Value: " + Value.asDebugString());
}

void AppLoggerModel::svValueChanged(int nCode, CSharedVariant &Value)
{
    addRow("onValueChanged", nCode, Value);
}

В качестве представления выступает ListView в итоге ListView тормозит, обновления порисходят где то 10 штук в секунду
мож за место
setData(index(row), sName + "; Event: " + EventName + "; Code=" + sCode.setNum(nCode) + "; Value: " + Value.asDebugString());
использовать что-нть другое а?

Ну во-первых, ставь в коде code=cpp! А во-вторых, я могу и ошибаться, но это возможно, что ты используешь DebugString! Можеть быть использовать просто String, если такое есть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 21:11