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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО]QActionGroup  (Прочитано 3930 раз)
Larry
Гость
« : Март 01, 2016, 10:53 »

Добрый день, форумчане.
Есть такая панель, как на рисунке. В первом случае (shapes) используется QListWidget, а во втором (tools) две кнопки QToolButton. Выбираться должен только один из них. Получится ли объединить итемы QListWidget и кнопки через QActionGroup? Или как лучше такое реализовать? Спасибо.
« Последнее редактирование: Март 01, 2016, 11:50 от Larry » Записан
Bepec
Гость
« Ответ #1 : Март 01, 2016, 10:59 »

Вариант при выборе любого элемента на панели вызывать очищающую прежний выбор функцию не вариант?

На мой взгляд даже если вы их объедините через actionGroup, listWidget никак не отреагирует на это. ToolButton ещё туда-сюда, а вот listWidget никоим образом с QAction не связан.

На мой взгляд лучше всего будет иметь у каждой панели ф-цию очистки выбора аля "clearChange", которая позволит добавлять любые виджеты без изменения архитектуры.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #2 : Март 01, 2016, 11:36 »

Можно сделать псевдоэкшены и повесить их на элементы QListWidget, тогда они будут реагировать на изменение группы и стирать выделение.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Larry
Гость
« Ответ #3 : Март 01, 2016, 11:38 »

А что за псевдоэкшены? Посмотрел вроде QListWidgetItem нет метода addAction...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Март 01, 2016, 11:43 »

А что за псевдоэкшены? Посмотрел вроде QListWidgetItem нет метода addAction...

Правильно, такого нету. Но вы можете использовать setData с указанием id экшена, который создадите в вашем контроллере меню. А этот экшин уже посадите в группу. Когда соответствующий элемент листа будет выделен - активируйте связанный с ним экшин, тогда ваша группа отреагирует на изменение. И наоборот, если группа поменялась "от кнопки" - вы это увидите по id экшена. Если это экшин листа - очистите выделение.

Либо же создайте свой List Item как наследник от QListWidgetItem и QAction.
« Последнее редактирование: Март 01, 2016, 11:45 от Racheengel » Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Larry
Гость
« Ответ #5 : Март 01, 2016, 11:50 »

Спасибо большое, значит так и сделаю.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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