crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Множественный выбор в QlistWidget без нажатия Ctrl
lxx
  опции профиля:
сообщение 22.9.2010, 20:17
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 22.9.2010
Пользователь №: 2057

Спасибо сказали: 0 раз(а)




Репутация:   0  


Приветствую!
Такая проблема:
Есть QlistWidget с возможностью выбора нескольких элементов. Чтобы выбрать несколько элементов нужно при выборе зажимать Ctrl.
Можно-ли сделать так, чтобы это можно было делать без удерживания Ctrl, то есть нажал на элемент один раз - он выбрался, второй раз - выбор снялся.
Пробовал в сигнале itemClicked делать следующее:

CODE
void PlugApmBuilder::on_listWidget_itemClicked(QListWidgetItem* item)
{
if (item->isSelected()) item->setSelected(false);
else item->setSelected(true);
// Выбор обязательных элементов
QList<QListWidgetItem *> list;
list = ui->listWidget->findItems(QString("element"), Qt::MatchExactly);
if (list.count() > 0) list[0]->setSelected(true);
}


Но при клике элемент выделяется и сразу сбрасывается.
Еще есть идея при клике как-то программно посылать Qt::ControlModifier, но как это сделать я не знаю.

Подскажите что-нибудь...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 22.9.2010, 20:49
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2923
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


сам я со списком ещё не возился, но как идея: хранить QList со списком индексов или имён выделенных объектов, по щелчку - "инвертировать" нужный объект в своём списке. И, соответственно, после каждого щелчка всё, что в своём списке помечено, помечать разом в виджете
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.9.2010, 21:03
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


У представления есть настройка режима выделения - QAbstractItemView::SelectionMode. Это также будет работать и для виджета.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 22.9.2010, 21:05
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


listWgt->setSelectionMode(QAbstractItemView::MultiSelection);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.9.2010, 21:11
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


к стати нашёл, с горем пополам, описание на русском.
Какого-то чёрта троли воткнули описание, принадлежащее абстрактному классу, в раздел для виджетов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lxx
  опции профиля:
сообщение 23.9.2010, 7:01
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 22.9.2010
Пользователь №: 2057

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(MoPDoBoPoT @ 22.9.2010, 22:05) *
listWgt->setSelectionMode(QAbstractItemView::MultiSelection);

Ой спасибо! Что-бы я без Вас делал...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.4.2021, 23:32