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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Ответ на событие мыши.  (Прочитано 11351 раз)
¤Se®ega¤
Гость
« Ответ #15 : Май 02, 2009, 10:58 »

И еще такой вопрос: теперь у меня на форме несколько label-ов,как мне свяать нажатие определенного label-а с определенным слотом???С учетом того, что label-объект класса, унаследованного от QLabel, в котором переопределены 4 события: leaveEvent,ebterEvent,mousePressEvent,mouseReleaseEvent.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #16 : Май 02, 2009, 11:19 »

а разве рамку нельзя сделать через стили? недавно тема была про нестандартный стиль кнопок - там при наведении на кнопку появлялась рамка

2 ¤Se®ega¤ добавь свой сигнал и делай emit его в либо mouse press либо mouse release. А затем кучу коннектов для лейлов. Или я не так вопрос понял?
« Последнее редактирование: Май 02, 2009, 11:21 от Авварон » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #17 : Май 02, 2009, 11:22 »

>>как мне свяать нажатие определенного label-а с определенным слотом???
Если следовать задаче из первого сообщения, то я не вижу необходимости в сигналах и слотах.
Так как ты переопределил обработчики событий, то и реализуй необходимые действия в этих обработчиках.
« Последнее редактирование: Май 02, 2009, 11:34 от lit-uriy » Записан

Юра.
¤Se®ega¤
Гость
« Ответ #18 : Май 02, 2009, 11:30 »

Так все дело то в том, что для каждого label свой метод.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #19 : Май 02, 2009, 11:35 »

2 ¤Se®ega¤, я думаю будет лучше если ты опишешь исходную задачу более подробно. Иначе игра в угадайку не даст пользы ни тебе ни другим.
Записан

Юра.
¤Se®ega¤
Гость
« Ответ #20 : Май 02, 2009, 11:44 »

на форме есть несколько обектов класса Qlabel? в которые я загружаю картинки(разные),при наведении,нажатии (отпускании кнопки мыши)на обект должны происходить какие-либо действия.Например навели-появилась рамка, нажали-смесились на пиксел вниз и вправо, отпустили-сместились на пиксел вверх и вправо.Помимо этого необходимо еще сделать так, чтобы при нажатии на каждую картинку - происходило определенное действие.Например нажали на первую картинку - форма свернулась, на другуя - закрылась.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #21 : Май 02, 2009, 12:03 »

2 ¤Se®ega¤, я неспроста попросил подробностей. Пэтому и выкладывай их все. Одна программа (не один класс) содержит множество различных методов. Я попробую прочитать твои мысли:
Нужен виджет - кнопка с картинкой, возможно с подписью.
Наведение мыши выделяет объект.
Начатие должно выглядеть как кнопка.
По нажатию что-то происходит.

Я бы использовал QPushButton + стили (см. сообщение Авварон'а)
Записан

Юра.
¤Se®ega¤
Гость
« Ответ #22 : Май 02, 2009, 12:14 »

от QPushButton отказались,поэтому использую Label.Если уж совсем подробно: Есть программа, в которой несколько форм.На каждой есть некоторые "кнопки",реализованные через QLabel и содержащие изображения (при помощи этих объектов осуществляется переход между формами, либо просто отображение некоторых форм).Так же на форме есть объекты Qlabel, содержащие изображения, но как "кнопки" не действующие (при наведении на них будет выдаваться информация в виде комментариев).Изоюражения на "кнопках" можно будет изменить через контекстное меню.
« Последнее редактирование: Май 02, 2009, 12:28 от ¤Se®ega¤ » Записан
¤Se®ega¤
Гость
« Ответ #23 : Май 02, 2009, 12:48 »

Спасибо Авварон,lit-uriy.
Сделал через сигнал (в переопределении releaseEvent делал emit? а после через connect)юВсе отлично работает.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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