Работа с checkable QActions |
Здравствуйте, гость ( Вход | Регистрация )
Работа с checkable QActions |
RazrFalcon |
15.7.2011, 1:52
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
В QMenu есть 3- QAction. Они отвечают за отображение текста в проге.
После выбора нужного, мне нужно со всех остальных снять "галочку". В итоге выходит вот что (реальный, рабочий кусок моего кода): Если видов будет не 3-и, а 10-ть - я убьюсь...Как правильнее реализовать задуманное? Хотелось более компактный код. Спасибо. Сообщение отредактировал RazrFalcon - 15.7.2011, 1:53 |
|
|
Алексей1153 |
15.7.2011, 9:47
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
нужно поиметь массив указателей/ссылок на элементы (составить самому, либо вытащить из объекта меню динамически). В каждом обработчике вызвать единую функцию с параметром - указатель на текущее выбранное действие. Там необходимо пробежаться по массиву и сбросить всё, что не указатель_из_параметра
Ещё вариант: иметь программную модель набора галочек (std::bitset , к примеру). При выборе галочки модель меняется так, что установлена только одна галочка. Затем модель "распечатывается на экран" (то есть из модели выводится текущее состояние галочек) |
|
|
Авварон |
15.7.2011, 10:32
Сообщение
#3
|
Студент Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0 |
А теперь приду я и скажу что есть http://doc.qt.nokia.com/latest/qactiongroup.html
|
|
|
Алексей1153 |
15.7.2011, 10:40
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Авварон, выходит, что второй вариант уже реализован в классах Qt ))
|
|
|
RazrFalcon |
15.7.2011, 11:29
Сообщение
#5
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 5:06 |