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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAction и глобальные настройки  (Прочитано 3588 раз)
Majestio
Гость
« : Май 31, 2013, 20:59 »

Внезапно  Показает язык возник вопрос ...

Разработка проекта движется к завершению. Но Заказчик настоятельно затребовал две фичи:

1) Настройка внешнего вида UI в плане размеров иконок и шрифтов
2) Разграничение полномочий пользователей - кому что-то можно, кому-то что-то из действий нельзя

У меня все действия описаны QAction'ами, но они разбросаны по коду, мама-не-горюй.
Хотелось бы их собрать воедино в какой-нить глобально видимый класс и изменять все одним циклом.
Но есть большие сомнения, что это неосуществимая мечта. Дело в том, что в разработанном мною UI
есть части кода (Виджеты) которые вызываются по N-копий одновременно. Если объявить один QAction,
спрашивается с какой копией он будет работать ...

А с другой стороны вопрос, как в рилтайме одним щелчком перегрузить UI?
Навскидку только приходит идея переписать QAction, чтобы он мог регаться в каком-то глобальном классе
и предоставлять классу возможность себя изменять...

Что скажете?
Записан
Bepec
Гость
« Ответ #1 : Май 31, 2013, 21:16 »

Ну по плохому можно тупо сделать синглтон, который будет хранить всё всё всё.
Записан
Majestio
Гость
« Ответ #2 : Май 31, 2013, 21:53 »

Ну по плохому можно тупо сделать синглтон, который будет хранить всё всё всё.

Такое у меня уже есть - все глобальные настройки в выделенном глобальном экземпляре класса. Тут вопросов нет. А вот что с QAction'ами делать ....  Непонимающий
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Май 31, 2013, 22:47 »

можно попробовать findChildren<QAction *>()
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Majestio
Гость
« Ответ #4 : Май 31, 2013, 22:57 »

можно попробовать findChildren<QAction *>()

Ууу ... у меня около 50 QAtcion'ов  раскиданы по 7-10 "плоскостям". Это будет адЪ))
Записан
mutineer
Гость
« Ответ #5 : Июнь 01, 2013, 09:54 »

Сказать заказчику что он поздно очнулся и затребовать перепланировку всего проекта:)
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #6 : Июнь 01, 2013, 10:00 »

Можно сделать наследника от QAction и использовать его. Для простоты замены можно сделать:
#define QAction MyAction

А объекты MyAction при конструировании пусть регистрируются в глобальной коллекции экшинов, а при разрушении вычеркиваются.
Тогда у вас всегда будет актуальная коллекция с указателями на все экшины.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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