Привет с qt только недавно начал знакомится, пишу свое первое приложение......
В моей ситуации делегаты всегда открыты
this->ui.tableView->openPersistentEditor(newit->index()); 
Eсли делегат создает например QLineEdit, я в нем, что-то печатаю потом кликаю в любом другом месте (смена фокуса), то данные  сбрасываются в ячейку (провоцируется вызов setModelData  в делегате)...
Я сделал свой составной виджет, в основе которого лежит QFrame
class PasswordEdit : public QFrame {
	Q_OBJECT
public:
	void setText(QString &text){
		this->ui.lineEdit->setText(text);
	}
	QString text(){
		return this->ui.lineEdit->text();
	}
private slots:
	void update();
public:
	PasswordEdit(QWidget *parent = nullptr);
	~PasswordEdit();
private:
	Ui::PasswordEdit ui;
};Идея его проста на фрэйме висит QLineEdit + QCheckBox + QPushButton...
Далее я ввожу некие данные в этот виджет в QLineEdit
Кликаю в любом другом месте и в делегате которые создает этот виджет не провоцируется вызов setModelData  в отличии от делегата который создает "чистый" QLineEdit... Все это наводит на мысль, что мой составной виджет должен что-то делать еще... то ли флаги какие то ставить которые указывают, что этот виджет изменился то ли еще чего-то...
После такого хака... в делегате создающим мой составной виджет провоцируется вызов setModelData,  при смене фокуса..
connect(this->ui.lineEdit, SIGNAL(editingFinished()), this, SLOT(update()));
void PasswordEdit::update(){
	QFrame::setFocus();
}
Хоть это и решило мою  проблему, но я понимаю, что это решение не правильное....
Так как правильно это решить?