Название: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: billy4685 от Сентябрь 08, 2015, 09:57 Здравствуйте, господа форумчане. Появилась необходимость закрашивать лейблы (QLabel) при наведении на них курсора мыши с нажатой левой клавишей мыши. Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: gil9red от Сентябрь 08, 2015, 10:23 Посмотрите QWidget::enterEvent (http://doc.qt.io/qt-4.8/qwidget.html#enterEvent)
Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: billy4685 от Сентябрь 08, 2015, 10:26 Посмотрите QWidget::enterEvent (http://doc.qt.io/qt-4.8/qwidget.html#enterEvent) спасибо, сейчас глянем.Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: GreatSnake от Сентябрь 08, 2015, 10:29 Посмотрите http://doc.qt.io/qt-4.8/qwidget.html#enterEvent (http://doc.qt.io/qt-4.8/qwidget.html#enterEvent) Неправильный совет, ибо при нажатии на кнопку на одном виджете будет сделан пассивный граб мыши и к другим виджетам события приходить не будут.2 billy4685: На форме, на которой заводятся QLabel перегрузи Код и уже там отлавливай все события. Не забудь через Код добавить для фильтровки все QLabel. Update. Хм..., есть подозрение, что так тоже не получится. Попробуй так: 1. В QLabel перегрузи Код в которой игнорируй нажатие мыши через Код 2. В форме включи Код 3. В ней же перегрузи Код и в них следи за соответствующим QLabel Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: GreatSnake от Сентябрь 08, 2015, 10:55 Кстати, используя QListView/QListWidget можно слепить подобный функционал намного быстрее и проще.
Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: billy4685 от Сентябрь 08, 2015, 11:05 QWidget::enterEvent не помог. GreatSnake, сейчас попробую реализовать то, что Вы посоветовали.
Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: Igors от Сентябрь 08, 2015, 12:19 Удобнее навесить фильтр на QWindow, туда железно все придет. Тогда можно все сделать в этом фильтре. Правда вешать его надо аккуратно, окно должно быть уже создано
Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: Bepec от Сентябрь 08, 2015, 19:32 Решения нет?
Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: Igors от Сентябрь 09, 2015, 08:47 Решения нет? Пока объяснишь - проще пример сделатьНазвание: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: billy4685 от Сентябрь 09, 2015, 08:58 Решения нет? Нет пока так и не вышло. Получается закрашивать Label-ы при клике или при движении. Решил все же использовать eventFilter(QObject *obj, QEvent *ev) и уже в нем для Label-ов проверяю события нажатия и движения. Прикрепляю файлы, так как архив что-то не хочет отправляться. Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: billy4685 от Сентябрь 09, 2015, 09:04 Пытался в том примере что отправил изменить следующим образом код:
Код: bool MainWindow::eventFilter(QObject *obj, QEvent *ev) Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: billy4685 от Сентябрь 09, 2015, 09:07 Igors, спасибо за пример. Вы меня не совсем правильно поняли. На первом рисунке это я просто попытался отобразить последовательность действий и результатов. У меня виджет с одной лентой Label-ов. Но Ваш пример мне может помочь. Сейчас буду разбираться. Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: GreatSnake от Сентябрь 09, 2015, 11:35 А чем не подошел QListWidget?
Код
Название: Re: Как реализовать событие наведение курсора мыши при нажатой левой кнопки? Отправлено: billy4685 от Сентябрь 09, 2015, 12:01 А чем не подошел QListWidget? ........ Пока просто не пробовал даже реализовать это через QListWidget. |