Название: Какой сигнал эмитится при редактировании записи представления? Отправлено: lexaaleynik от Декабрь 26, 2014, 17:05 Многие, увидев название темы, сразу подумают dataChanged(QModelIndex index, QModelIndex index), но не торопитесь. Имеется в виду не момент окончания редактирования записи, например при смене фокуса объекта, а в случае, если у меня записи представляются в виде ComboBox и юзер просто щелчком мыши меняет текущий выбранный элемент списка этого ComboBox. Но пока не сменишь фокус, dataChanged не сгенерируется. Подумал о реализации через делегаты, посмотрел сигналы в QAbstractItemDelegate, но ничего нужного не нашёл.
Название: Re: Какой сигнал эмитится при редактировании записи представления? Отправлено: PimenS от Декабрь 26, 2014, 18:31 Может подойдет такой способ:
Использую для комбобокс делегата QItemDelegate, переопределяю createEditor Код: QWidget *sAlignDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem& /* option */, const QModelIndex& /* index */) const переопределяю setEditorData, куда передаю текущее значение из модели: Код: void sAlignDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const когда меняю значение в комбобоксе, отправляю сигнал о смене значение. Код: void sAlignDelegate::indexChanged(int idx) А когда теряется фокус, отрабатывает переопределенный setModelData Код: void sAlignDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex& index) const и соответственно только тогда отрабатывает dataChanged Название: Re: Какой сигнал эмитится при редактировани Отправлено: Johnik от Декабрь 27, 2014, 17:17 Для классов унаследованных от QAbstractItemModel, есть специальная модель: QItemSelectionModel и соответственно методы:
Код
А у QComboBox есть соответствующие сигналы. Название: Re: Какой сигнал эмитится при редактировани&# Отправлено: lexaaleynik от Декабрь 29, 2014, 14:09 Для классов унаследованных от QAbstractItemModel, есть специальная модель: QItemSelectionModel и соответственно методы: Код
А у QComboBox есть соответствующие сигналы. Способ комментатора PimenS я понял, а вот Ваш способ не понял Соответствующие сигналы у ComboBox, это вы имеете ввиду currentIndexChanged(int) и currentIndexChanged(String)? Если да, то причём тут модель QItemSelectionModel? И как мне помогут методы Код ? Название: Re: Какой сигнал эмитится при редактировани&# Отправлено: Johnik от Декабрь 29, 2014, 14:16 Соответствующие сигналы у ComboBox, это вы имеете ввиду currentIndexChanged(int) и currentIndexChanged(String)? даЕсли да, то причём тут модель QItemSelectionModel? И как мне помогут методы я опечатался: Код ? В итоге следует читать как: Цитировать Для классов унаследованных от QAbstractItemView, есть специальная модель: QItemSelectionModel и соответственно методы |