Russian Qt Forum
Апреля 27, 2025, 14:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QListWidget: как отследить mouse leave от дочернего элемента?  (Прочитано 3222 раз)
TrimS
Гость
« : Января 29, 2014, 16:48 »

Есть два вопроса по QListWidget. Какие его настройки:

Код:
m_List->setViewMode(QListView::IconMode);
m_List->setResizeMode(QListView::Adjust);
m_List->setSpacing(10);
m_List->setMouseTracking(true);
m_List->setDragEnabled(false);
connect(m_List, SIGNAL(itemEntered(QListWidgetItem*)), this, SLOT(MouseMoveFocusChange(QListWidgetItem*)));
В MouseMoveFocusChange просто строчка item->setSelected(true);

Все элементы загружены со своими иконками.
А теперь вопросы:

1) Хотелось добиться, чтобы при прохождении мышки над элементом списка - этот элемент выделялся, а при уходе мышки выделение снималось. Первой цели удалось добиться - елемент выделяется когда на него налазит курсор. А как добиться чтобы выделение снималось, когда курсор уезжает с элемента?

2) Как словить mouse click вне елементов? (когда юзер кликает между элементами)
Записан
carrygun
Гость
« Ответ #1 : Января 30, 2014, 04:34 »

1) Тут проще всего решить стилями, смотри QSS, QListWidget::item:hover;

2) Тут 2 варианта:
    а - унаследоваться от QListWidget, переопределить mousePressEvent и бросать сигнал если по клику в координатах нет ни одного элемента (есть метод itemAt());
    б - прочитать про installEventFilter() и так же использовать itemAt().
Записан
TrimS
Гость
« Ответ #2 : Января 30, 2014, 13:57 »

Спасибо! Просто был удивлён, что нет способа работать с событиями дочерних елементов QListWidget. Казалось, что это я плохо знаком с Qt. Оказалось что не казалось - ок, тогда действительно отнаследуюсь и добавлю свой сигнал.

Спасибо за помощь!
« Последнее редактирование: Января 30, 2014, 13:58 от TrimS » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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