Для этого использовал метод isModified (), но он всегда возвращает true.
Хм, странно.
Могу посоветовать при установке начального текста дублировать его через setPropery( "init_value", string ) и уже в editingFinished() слоте
проверять текущее значение с начальным
if( text() != property( "init_value" ).toString() )
; // modified