Название: QAction и глобальные настройки Отправлено: Majestio от Май 31, 2013, 20:59 Внезапно :P возник вопрос ...
Разработка проекта движется к завершению. Но Заказчик настоятельно затребовал две фичи: 1) Настройка внешнего вида UI в плане размеров иконок и шрифтов 2) Разграничение полномочий пользователей - кому что-то можно, кому-то что-то из действий нельзя У меня все действия описаны QAction'ами, но они разбросаны по коду, мама-не-горюй. Хотелось бы их собрать воедино в какой-нить глобально видимый класс и изменять все одним циклом. Но есть большие сомнения, что это неосуществимая мечта. Дело в том, что в разработанном мною UI есть части кода (Виджеты) которые вызываются по N-копий одновременно. Если объявить один QAction, спрашивается с какой копией он будет работать ... А с другой стороны вопрос, как в рилтайме одним щелчком перегрузить UI? Навскидку только приходит идея переписать QAction, чтобы он мог регаться в каком-то глобальном классе и предоставлять классу возможность себя изменять... Что скажете? Название: Re: QAction и глобальные настройки Отправлено: Bepec от Май 31, 2013, 21:16 Ну по плохому можно тупо сделать синглтон, который будет хранить всё всё всё.
Название: Re: QAction и глобальные настройки Отправлено: Majestio от Май 31, 2013, 21:53 Ну по плохому можно тупо сделать синглтон, который будет хранить всё всё всё. Такое у меня уже есть - все глобальные настройки в выделенном глобальном экземпляре класса. Тут вопросов нет. А вот что с QAction'ами делать .... ??? Название: Re: QAction и глобальные настройки Отправлено: kambala от Май 31, 2013, 22:47 можно попробовать findChildren<QAction *>()
Название: Re: QAction и глобальные настройки Отправлено: Majestio от Май 31, 2013, 22:57 можно попробовать findChildren<QAction *>() Ууу ... у меня около 50 QAtcion'ов раскиданы по 7-10 "плоскостям". Это будет адЪ)) Название: Re: QAction и глобальные настройки Отправлено: mutineer от Июнь 01, 2013, 09:54 Сказать заказчику что он поздно очнулся и затребовать перепланировку всего проекта:)
Название: Re: QAction и глобальные настройки Отправлено: Old от Июнь 01, 2013, 10:00 Можно сделать наследника от QAction и использовать его. Для простоты замены можно сделать:
#define QAction MyAction А объекты MyAction при конструировании пусть регистрируются в глобальной коллекции экшинов, а при разрушении вычеркиваются. Тогда у вас всегда будет актуальная коллекция с указателями на все экшины. |