Russian Qt Forum

Qt => Вопросы новичков => Тема начата: joffadark от Январь 06, 2015, 16:11



Название: Проблема со свойством класса QString при передаче в сигнал
Отправлено: joffadark от Январь 06, 2015, 16:11
Здравствуйте, уважаемые форумчане.

Столкнулся со странной проблемой:
Есть некий объект, у которого имеется слот. В котором создается объект другого класса ( = new CClassName(params)).
У этого другого объекта через конструктор заполняется небольшое количество свойств. Среди них есть свойства QString.
Затем сразу из этого же слота вызывается сигнал, в который передается этот объект класса с QString'ами.

Если обработчик этого сигнала делает что-либо с любым свойством типа QString, то после возврата к emit происходит Segmentation Fault.
Самое смешное, что если заполнить одно из свойств "ручками", присвоив некое значение прямо в слоте-генераторе сигнала, то при работе с таким свойством SegFault не происходит.

Сейчас для понятности попробую написать примерный код:

Код:
void CSomeObject::SomeSlot()
{
    CDataObject* dataObject = new CDataObject(); // в конструкторе свойства dataObject заполняются
    dataObject->someQStringProperty = "Example text";
    emit onSomeObjectSignal(dataObject); 
}
   

Вот это приемник сигнала onSomeObjectSignal:
Код:
void CSomeAcceptObject::onSomeObjectSignal(CDataObject* dataObject)
{
    qDebug() << dataObject->SomeQStringProperty;               // вот это выведется
    qDebug() << dataObject->SomeAnotherQStringProperty;    // вот на этом будет segmentation fault
}

Еще одна деталь: это происходит только со свойствами типа QString. Свойства с числовыми типами читаются без ошибок.

Подскажите, в чем может быть дело?


Название: Re: Проблема со свойством класса QString при передаче в сигнал
Отправлено: vipet от Январь 06, 2015, 16:44
минимальный проект - в студию!

(что такое свойство - что делает функция его READ)


Название: Re: Проблема со свойством класса QString при передаче в сигнал
Отправлено: joffadark от Январь 06, 2015, 19:07
Блин, накидал проект, который в точности имитирует ситуацию. Чтобы отправить сюда.
И такой проблемы нет  :o WTF


Название: Re: Проблема со свойством класса QString при передаче в сигнал
Отправлено: kambala от Январь 06, 2015, 21:48
это явный признак того, что где-то баг в твоем коде. может объект где-то удаляешь случайно?