Название: Q_ENUM outside my class Отправлено: deMax от Июнь 22, 2018, 14:40 Внутри своего класса можно определить Q_OBJECT, Q_ENUM и получить названия полей enum.
А можно ли получить значения например с QPagedPaintDevice::PageSize ? - A4, B5, Letter, Legal, Executive, A0, A1, A2, A3, A5... Название: Re: Q_ENUM outside my class Отправлено: Alex Custov от Июнь 22, 2018, 15:00 ты выбрал не тот язык :) Автоматически - нельзя.
Название: Re: Q_ENUM outside my class Отправлено: Fregloin от Сентябрь 05, 2018, 11:58 Можно с помощью QMetaObject.
У каждого экземпляра и класса есть staticMetaObject. Почитайте про Qt meta object system. Вы можете получить всю необходимую информацию о классе или его экземпляра, если он использует в своем описании макрос Q_OBJECT/Q_GADGET. Название: Re: Q_ENUM outside my class Отправлено: Авварон от Сентябрь 05, 2018, 12:11 Еще есть Q_NAMESPACE
Название: Re: Q_ENUM outside my class Отправлено: Alex Custov от Сентябрь 05, 2018, 13:39 Можно с помощью QMetaObject. У каждого экземпляра и класса есть staticMetaObject. Почитайте про Qt meta object system. Вы можете получить всю необходимую информацию о классе или его экземпляра, если он использует в своем описании макрос Q_OBJECT/Q_GADGET. Если он использует в своем описании макрос Q_OBJECT/Q_GADGET, и eсли enum помечен с помощью Q_ENUM. У QPagedPaintDevice нет ни того, ни другого. Название: Re: Q_ENUM outside my class Отправлено: Авварон от Сентябрь 05, 2018, 13:46 Если он использует в своем описании макрос Q_OBJECT/Q_GADGET, и eсли enum помечен с помощью Q_ENUM. У QPagedPaintDevice нет ни того, ни другого. Попробуйте так namespace Details { Q_NAMESPACE Q_ENUM_NS(QPagedPaintDevice); } // namespace Details |