Задача следующая: ComboBoxDelegate задает точность и шаг приращения в другой колонке той же строки, но с DoubleSpinBoxDelegate. Проблема в том, что если изменить точность в более грубую сторону, то значение в ячейках из других колонок той же строки надо автоматически округлить. Например есть значение 29.99999 при точности 0.00001, изменили точность до 0.0001 и значение автоматически должно стать 29.99990 (значение 30 - это уже за пределами диапазона). Ниже приведен метод делегата:
void ComboBoxStepFreqDelegate::setEditorData( QWidget * editor, const QModelIndex &index) const
{
int value = index.model()->data( index, Qt::EditRole ).toInt();
QComboBox * cb = static_cast<QComboBox*>( editor );
int idx = cb->findData( value );
if ( idx < 0 ) return;
cb->setCurrentIndex( idx );
int tmp = index.model()->data(index, Qt::DisplayRole).toInt();
int shift;
switch (tmp)
{
case step10:
shift = 100000;
break;
case step100:
shift = 10000;
break;
default:
shift = 1000000;
}
QModelIndex tFreqIndex = index.sibling(index.row(), FREQ_TX);
QModelIndex rFreqIndex = index.sibling(index.row(), FREQ_RX);
double valt = tFreqIndex.model()->data(tFreqIndex, Qt::DisplayRole).toDouble();
double valr = rFreqIndex.model()->data(rFreqIndex, Qt::DisplayRole).toDouble();
valt = floor(valt * shift) / shift;
valr = floor(valr * shift) / shift;
// --- эти две строки выдают ошибку компиляции ---
tFreqIndex.model()->setData(tFreqIndex, valt, Qt::EditRole);
rFreqIndex.model()->setData(rFreqIndex, valr, Qt::EditRole);
//------------------------------------------------
}
Вопрос - как записать сформированные данные в ячейки, поскольку я пока не разобрался?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При вызове Func() заполняется buffer данными из сокета, после происходит их конвертация в класс DerivedЕсли после конвертаци вызвать функию Foo(), то происходит...
Используется библиотека BoostLog v2 1
помогите разобраться с проблемой, она довольно распространенная и на форуме куча сообщений про это но в моей программе я никак не могу найти...