есть задача - необходимо вести лог всех изменений моего объекта, для этого была выбрана следующая стратегия: объект генерит сигналы об изменении
в свою очередь конектиться к ним через слоты.
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);
}
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);
}
Delphist, Не хорошо обновлять ГУИ обьекты с такой частотой. Тем более если в оном куча элементов!
Создай промежуточный контейнер в котором будут хранится все элементы, и обновляй его как тебе хочется.
А он в свою очередь, с меньшей частотой, будет обновлять ГУИ. Или что еще лучше - ГУИ обновлять только в случае, если содержимое контейнера изменилось.
Удачи.
с меньшей частотой - с какой...?
Delphist, Ну тебе виднее!
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)