Size: a a a

2017 April 27

DK

Denis Kormalev in Qt
не задавай парента
источник

DK

Denis Kormalev in Qt
и будет все ок
источник

RS

Roman Sharkov in Qt
auto someid = Meta.id();
//......
someid.setParent(bla);


легко выстрелить себе в ногу
источник

DK

Denis Kormalev in Qt
дада, я уже выше писал про memcpy
источник

ШВ

Шаурма Вкод in Qt
тогда не проще assert(false)?
источник

RS

Roman Sharkov in Qt
Q_GADGETs can have Q_ENUM, Q_PROPERTY and Q_INVOKABLE, but they cannot have signals or slots
источник

DK

Denis Kormalev in Qt
но вообще на самом деле от setParent можно защититься
источник

DK

Denis Kormalev in Qt
через перехват евента смены парента
источник

DK

Denis Kormalev in Qt
и возврата его в ноль
источник

DK

Denis Kormalev in Qt
у нас используется этот евент даже в одном месте в проекте, правда для других целей
источник

RS

Roman Sharkov in Qt
мне кажется использовать композицию из QObject неправильно изначально, поскольку QObject влечёт за собой довольно весомый overhead
источник

DK

Denis Kormalev in Qt
удивительно, не правда ли
источник

RS

Roman Sharkov in Qt
т.е. такие типы как идентификатор можно в качестве Q_GADGET реализовать походу
источник

DK

Denis Kormalev in Qt
(но их все еще можно удалить!)
источник

RS

Roman Sharkov in Qt
это да
источник

RS

Roman Sharkov in Qt
но за Q_GADGET уже спасибо
источник

RS

Roman Sharkov in Qt
поменьше мусора
источник

RS

Roman Sharkov in Qt
а разве нельзя при наследовании удалить deleteLater и setParent?
источник

ШВ

Шаурма Вкод in Qt
можно пометить приватными
источник

DK

Denis Kormalev in Qt
а потом в клиентском коде сделать #define private public
источник