crossplatform.ru

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


  Ответ в как внутри модели менять данные
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
niXman Дата 25.8.2008, 17:14
  Delphist, Ну тебе виднее!
Delphist Дата 25.8.2008, 16:44
  с меньшей частотой - с какой...?
niXman Дата 22.8.2008, 16:57
  Delphist, Не хорошо обновлять ГУИ обьекты с такой частотой. Тем более если в оном куча элементов!
Создай промежуточный контейнер в котором будут хранится все элементы, и обновляй его как тебе хочется.
А он в свою очередь, с меньшей частотой, будет обновлять ГУИ. Или что еще лучше - ГУИ обновлять только в случае, если содержимое контейнера изменилось.
Удачи.
Delphist Дата 22.8.2008, 13:50
 
Цитата(AD @ 22.8.2008, 13:52) *
Ну во-первых, ставь в коде code=cpp! А во-вторых, я могу и ошибаться, но это возможно, что ты используешь DebugString! Можеть быть использовать просто String, если такое есть?

Не это DebugString просто возвращает строку там всякая инфа об объекте и все, мне кажется надо менять сам setData
AD Дата 22.8.2008, 12:52
 
Цитата(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, если такое есть?
Delphist Дата 22.8.2008, 12: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());
использовать что-нть другое а?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 16:14