Russian Qt Forum
Март 28, 2024, 12:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Q_ENUM outside my class  (Прочитано 3770 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Июнь 22, 2018, 14:40 »

Внутри своего класса можно определить Q_OBJECT, Q_ENUM и получить названия полей enum.

А можно ли получить значения например с QPagedPaintDevice::PageSize ? - A4, B5, Letter, Legal, Executive, A0, A1, A2, A3, A5...
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Июнь 22, 2018, 15:00 »

ты выбрал не тот язык Улыбающийся Автоматически - нельзя.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #2 : Сентябрь 05, 2018, 11:58 »

Можно с помощью QMetaObject.
У каждого экземпляра и класса есть staticMetaObject.
Почитайте про Qt meta object system. Вы можете получить всю необходимую информацию о классе или его экземпляра, если он использует в своем описании макрос Q_OBJECT/Q_GADGET.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #3 : Сентябрь 05, 2018, 12:11 »

Еще есть Q_NAMESPACE
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Сентябрь 05, 2018, 13:39 »

Можно с помощью QMetaObject.
У каждого экземпляра и класса есть staticMetaObject.
Почитайте про Qt meta object system. Вы можете получить всю необходимую информацию о классе или его экземпляра, если он использует в своем описании макрос Q_OBJECT/Q_GADGET.

Если он использует в своем описании макрос Q_OBJECT/Q_GADGET, и eсли enum помечен с помощью Q_ENUM. У QPagedPaintDevice нет ни того, ни другого.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #5 : Сентябрь 05, 2018, 13:46 »


Если он использует в своем описании макрос Q_OBJECT/Q_GADGET, и eсли enum помечен с помощью Q_ENUM. У QPagedPaintDevice нет ни того, ни другого.

Попробуйте так

namespace Details {

Q_NAMESPACE
Q_ENUM_NS(QPagedPaintDevice);

} // namespace Details
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.