![]() |
|
![]() ![]() ![]() |
|
quarz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 7.1.2005 Репутация: 1 Всего: 3 |
Есть слайдер, за ним graphicsView, на котором нарисованы прямоугольники, как показано на первом скрине.
GraphicsView немного шире, чем слайдер и там где прямоугольники вылезают за слайдер, они обрабатывают перемещение мыши и меняют указатель на pointing_hand (2 скрин). А слайдер, естественно, логически перекрывает нарисованные прямоугольники, хоть и графически прозрачен (3 скрин). Как сделать, чтобы он передавал движения и клики мыши своему родителю, graphicsView? Тогда можно было бы определить, есть ли в этом месте на graphicsView объект и если да, то обработать клики и перемещения мыши. А если нет, вернуть событие слайдеру, чтобы тот смог обрабатывать нажатия на ползунок. |
|||
|
||||
RedDigger |
|
||||
![]() Программист Профиль Группа: Участник Сообщений: 26 Регистрация: 24.9.2010 Где: Москва Репутация: нет Всего: 1 |
С примерами кода было бы удобнее, да и скринов я не заметил. Но всеже попытаюсь помочь. 1. Захват события нажатия кнопки мыши объектом слайдер. До начала основного алгоритма обработки слайдером передаете объект QEvent в слот обработки onClick() QGraphicsView. Будьте осторожны.. если вы используете локальные координаты на объекте то при передачи данных в другой объект может потребоваться конвертация координат на другие подобные... Данный вариант поможет Вам если вы используете QGraphicsView как основной обработчик событий. 2. В случае если нужно передать данные неопрделенной фигуре в облости QGraphicsView тогда Вам понадобится вытащить все объекты на QGraphicsView при помощи функции.
Данная конструкция Вам верет все объекты находящиеся под этими координатами. пробегаете по всем, запоминаете верхний и передаете ему QEvent... Также вместо пришедшего события можно генерировать собственные и передавать их.. Но лично я Вам не советую пользоваться подобной идеей постановки задачи.. Надеюсь помог. Это сообщение отредактировал(а) RedDigger - 24.9.2010, 22:54 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |