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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Ответ на событие мыши.  (Прочитано 11715 раз)
¤Se®ega¤
Гость
« : Мая 01, 2009, 14:13 »

При наведении курсора мыши на объект должно произойти изменение параметров объекта, наприер при наведении на Qlabel-появяется рамка( setFrameShadow(QFrame::Plain) ).Как это реализовать? Использовать mouseMoveEvent(QMouseEvent)? setMouseTracking(TRUE) уже установил.
« Последнее редактирование: Мая 01, 2009, 18:47 от ¤Se®ega¤ » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Мая 01, 2009, 14:30 »

Да. Переопределить mouseMoveEvent(QMouseEvent) и в нем проводить действие.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
¤Se®ega¤
Гость
« Ответ #2 : Мая 01, 2009, 14:39 »

Так как мне переопределить это событие только для объектов класса QLabel?У меня на форме много разных обектов, кроме label.Как именно мне отловить перемещение над label я не понимаю В замешательстве
« Последнее редактирование: Мая 01, 2009, 14:41 от ¤Se®ega¤ » Записан
gueRRero
Гость
« Ответ #3 : Мая 01, 2009, 15:23 »

Как вариант, создать свой класс, унаследованный от QLabel, в нем переопределить соответствующие события и на форме использовать именно его.
Может быть, можно и как-то по-другому.
Записан
¤Se®ega¤
Гость
« Ответ #4 : Мая 01, 2009, 15:41 »

допустим я так сделаю, а не будет ли так, что я добавлю несколько объектов этого класса на форму и при наведении у них у ВСЕХ будут меняться параметры сразу?
Записан
¤Se®ega¤
Гость
« Ответ #5 : Мая 01, 2009, 15:48 »

Можно сделать еще с фильтром, но там придется писать для каждого компонента.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Мая 01, 2009, 16:16 »

>>я добавлю несколько объектов этого класса на форму и при наведении у них у ВСЕХ будут меняться параметры сразу?
Это из области С++
каждый объект - экземпляр класса - будет сам по себе.
Записан

Юра.
¤Se®ega¤
Гость
« Ответ #7 : Мая 01, 2009, 16:54 »

Да, спасибо,я  уже понял, это я с фильтром думал.
Записан
¤Se®ega¤
Гость
« Ответ #8 : Мая 01, 2009, 18:03 »

Еще не подскажете?Я при навдении курсора делаю рамку у Label,после того как курсор вышел за пределы Label рамка, естественно остается.Как лучше от неё избавиться?Фильтр,таймер, переопределение mousemove на родительском виджете(но тут надо будет изменять состояние для всех унаследованных от Label класса объектов),по координатам мыши (пару-тройку пикселей по краям Label? при попадании на которые рамка будет исчезать), может еще что?
Записан
gueRRero
Гость
« Ответ #9 : Мая 01, 2009, 18:38 »

Если не ошибаюсь, void QWidget::leaveEvent(QEvent* event) должно помочь.
Записан
¤Se®ega¤
Гость
« Ответ #10 : Мая 01, 2009, 18:40 »

Тогда может вообще сделать не через mouseMove, а через enterEvent и leaveEvent?
Записан
gueRRero
Гость
« Ответ #11 : Мая 01, 2009, 18:41 »

Да, я думаю, что так будет и логичнее и проще.
Записан
¤Se®ega¤
Гость
« Ответ #12 : Мая 01, 2009, 18:46 »

Уже сделал.Спасибо.А что касательно загрузки изображения в Label, это не хуче чем использование QImage и QPixmap? или всеже лучше грузить через QImage и QPixmap?
Записан
gueRRero
Гость
« Ответ #13 : Мая 01, 2009, 18:53 »

Вот это лучше спросить у наших гуру. Я думаю, что это не принципиально, ибо все равно в QLabel картинка ставится через setPixmap.
Записан
¤Se®ega¤
Гость
« Ответ #14 : Мая 01, 2009, 18:56 »

Ну я предполагаю что если добавить кнопку, на которую через setIcon так-же добавить картитнку, будет грузиться таким же образом, но от такого рода отображения картинок мой руководитель отказался.
« Последнее редактирование: Мая 02, 2009, 10:55 от ¤Se®ega¤ » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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