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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Qt и флаги  (Прочитано 14863 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #15 : Апрель 02, 2010, 14:20 »

Цитировать
Много чего. Вот пример:
Не, это нечто не то...  (ИМХО) Я проверил вывод.

--

Нужно чтобы при qDebug() в консоль выдавалось "текстовое" представление флага/перечисления, но реально значение этого флага/перечисления было бы целым! т.е. как по аналогии с QAbstractSocket, QFile  и т.п.

-----

УРА! Понял как это делается, вот прикрепляю проект.
« Последнее редактирование: Апрель 02, 2010, 15:23 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
SABROG
Гость
« Ответ #16 : Апрель 02, 2010, 15:35 »

Ааа, ты про реализацию оператора << для QDebug в своем классе...

Кстати гораздо удобней будет все-таки реализовывать вывод текстового названия через QMetaEnum, несмотря на то, что тролли захардкодили строки в исходнике ручками. Самому же потом легче будет переименовывать или добавлять новые перечисления не меняя строки в "QDebug operator<<".
« Последнее редактирование: Апрель 02, 2010, 15:49 от SABROG » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #17 : Апрель 02, 2010, 17:26 »

Цитировать
Кстати гораздо удобней будет все-таки реализовывать вывод текстового названия через QMetaEnum, несмотря на то, что тролли захардкодили строки в исходнике ручками. Самому же потом легче будет переименовывать или добавлять новые перечисления не меняя строки в "QDebug operator<<".
Если не трудно, то приведи,пжлста, конкретный пример кода (проект) в котором бы это было реализовано..  Применительно к тому проекту что я прикрепил.. А то что-то я не въеду.
Записан

ArchLinux x86_64 / Win10 64 bit
SABROG
Гость
« Ответ #18 : Апрель 02, 2010, 23:02 »

Если не трудно, то приведи,пжлста, конкретный пример кода (проект) в котором бы это было реализовано..  Применительно к тому проекту что я прикрепил.. А то что-то я не въеду.

Вот.

Код
C++ (Qt)
int main(int argc, char* argv[])
{
   MyClass mc;
 
   qDebug() << "Default mode: " << mc.mode();
 
   mc.setMode(MyClass::Option4);
 
   qDebug() << "New mode: " << mc.mode();
 
   mc.setMode(MyClass::Option1 | MyClass::Option3 | MyClass::Option5);
   qDebug() << "Combined flags: " << mc.mode();
 
   return 0;
}
 
 

Код:
Default mode:  "NoOptions" 0
New mode:  "Option4" 8
Combined flags:  "Option1|Option3|Option5" 21
« Последнее редактирование: Апрель 03, 2010, 00:37 от SABROG » Записан
SASA
Гость
« Ответ #19 : Апрель 03, 2010, 13:52 »

Вот бы найти QMetaObject класса Qt

staticQtMetaObject

Был найден в каких-то релизация проперти браузера.
Записан
SABROG
Гость
« Ответ #20 : Апрель 03, 2010, 15:32 »

Вот бы найти QMetaObject класса Qt

staticQtMetaObject

Был найден в каких-то релизация проперти браузера.


Судя по всему Вы тему не полностью читали, я уже все нашел и выложил пример.
« Последнее редактирование: Апрель 03, 2010, 15:37 от SABROG » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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