Перемещение мыши над QGraphicsView |
Здравствуйте, гость ( Вход | Регистрация )
Перемещение мыши над QGraphicsView |
RazrFalcon |
23.3.2011, 23:39
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Главное(и единственное) окно - наследник QGraphicsView.
Но, mouseMoveEvent срабатывает только при нажатии ЛКМ, setMouseTracking(true); - не помогло. Нужно отловить положение мышки относительно QGraphicsView/QGraphicsScene. PS: проблема в том, что кроме QGraphicsView у меня должны быть и другие элементы на форме, но тогда я не могу перехватить положение мыши... То есть, если главное окно наследник QMainWindow, то как отловить положение мыши над QGraphicsView? |
|
|
abc |
24.3.2011, 0:08
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
а что хочешь делать с этим MoveEvent?
|
|
|
Алексей1153 |
24.3.2011, 8:10
Сообщение
#3
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
наверное
сорри, невнимательно прочитал - уже пробовалось, оказывается Сообщение отредактировал Алексей1153 - 24.3.2011, 8:11 |
|
|
RazrFalcon |
24.3.2011, 8:23
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Суть:
есть окно, наследник QGraphicsView. Из-за этого на все окно растянут QGraphicsView, других элементов нет. При нажатии пишет в консоль положение курсора, а мне нужно, что бы просто при наведении писало. Под мышкой должна рисоваться вертикальная линия. В примерах Qwt такое есть, но он мне не подходит, да и не нужен в общем. В добавок, я не пойму как теперь еще, к примеру, кнопку добавить на виджет. Сообщение отредактировал RazrFalcon - 24.3.2011, 8:27 |
|
|
abc |
24.3.2011, 12:24
Сообщение
#5
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
если ты в дизайнере поставишь setMouseTracking на графиквью, то всё прокатит, и вот как это сделать кодом:
graphicsView->viewport()->setMouseTracking(1); дело в том, что у QGrapchicsView, у QTextEdit, у QTableWidget и т.д. есть этот viewport, та белая область, в которой и происходят все гадости "кнопку на виджет"?.. кнопку на сцену? Сообщение отредактировал abc - 24.3.2011, 12:33 |
|
|
RazrFalcon |
24.3.2011, 14:16
Сообщение
#6
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Не вышло.
Вот код: .cpp Раскрывающийся текст
.h Раскрывающийся текст
Выглядит то так: Как сюда другие элементы добавлять? PS: я понимаю что это все звучит по идиотски, но я на этом застрял прилично. |
|
|
abc |
24.3.2011, 15:00
Сообщение
#7
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
где ты нашёл этот метод?
void mouseMoveEvent(QGraphicsSceneMouseEvent *event); я у QGraphicsView вижу только такой void mouseMoveEvent ( QMouseEvent * event ) поменяй, заработает Если виджеты на сцену, то QGraphicsScene::addWidget |
|
|
RazrFalcon |
24.3.2011, 15:12
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
|
|
|
abc |
24.3.2011, 15:19
Сообщение
#9
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
зачем ты полез наследоваться от вью?
создай виджет или мэйнвиндоу, как обычно, положи на него вью и всё, что надо |
|
|
RazrFalcon |
24.3.2011, 15:24
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Но тогда я буду перехватывать положение курсора относительно виджета, а не QGraphicsView!
|
|
|
Текстовая версия | Сейчас: 1.12.2024, 21:43 |