![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Главное(и единственное) окно - наследник QGraphicsView.
Но, mouseMoveEvent срабатывает только при нажатии ЛКМ, setMouseTracking(true); - не помогло. Нужно отловить положение мышки относительно QGraphicsView/QGraphicsScene. PS: проблема в том, что кроме QGraphicsView у меня должны быть и другие элементы на форме, но тогда я не могу перехватить положение мыши... То есть, если главное окно наследник QMainWindow, то как отловить положение мыши над QGraphicsView? |
|
|
![]() |
abc |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
а что хочешь делать с этим MoveEvent?
|
|
|
Алексей1153 |
![]()
Сообщение
#3
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
наверное
сорри, невнимательно прочитал - уже пробовалось, оказывается Сообщение отредактировал Алексей1153 - 24.3.2011, 8:11 |
|
|
RazrFalcon |
![]()
Сообщение
#4
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Суть:
есть окно, наследник QGraphicsView. Из-за этого на все окно растянут QGraphicsView, других элементов нет. При нажатии пишет в консоль положение курсора, а мне нужно, что бы просто при наведении писало. Под мышкой должна рисоваться вертикальная линия. В примерах Qwt такое есть, но он мне не подходит, да и не нужен в общем. В добавок, я не пойму как теперь еще, к примеру, кнопку добавить на виджет. Сообщение отредактировал RazrFalcon - 24.3.2011, 8:27 |
|
|
abc |
![]()
Сообщение
#5
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
если ты в дизайнере поставишь setMouseTracking на графиквью, то всё прокатит, и вот как это сделать кодом:
graphicsView->viewport()->setMouseTracking(1); дело в том, что у QGrapchicsView, у QTextEdit, у QTableWidget и т.д. есть этот viewport, та белая область, в которой и происходят все гадости "кнопку на виджет"?.. кнопку на сцену? Сообщение отредактировал abc - 24.3.2011, 12:33 |
|
|
RazrFalcon |
![]()
Сообщение
#6
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Не вышло.
Вот код: .cpp Раскрывающийся текст
.h Раскрывающийся текст
Выглядит то так: ![]() Как сюда другие элементы добавлять? PS: я понимаю что это все звучит по идиотски, но я на этом застрял прилично. |
|
|
abc |
![]()
Сообщение
#7
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
где ты нашёл этот метод?
void mouseMoveEvent(QGraphicsSceneMouseEvent *event); я у QGraphicsView вижу только такой void mouseMoveEvent ( QMouseEvent * event ) поменяй, заработает Если виджеты на сцену, то QGraphicsScene::addWidget |
|
|
RazrFalcon |
![]()
Сообщение
#8
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
abc |
![]()
Сообщение
#9
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
зачем ты полез наследоваться от вью?
создай виджет или мэйнвиндоу, как обычно, положи на него вью и всё, что надо |
|
|
RazrFalcon |
![]()
Сообщение
#10
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Но тогда я буду перехватывать положение курсора относительно виджета, а не QGraphicsView!
|
|
|
abc |
![]()
Сообщение
#11
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
ты не знаком с eventFilter?
http://doc.crossplatform.ru/qt/4.6.x/eventsandfilters.html |
|
|
RazrFalcon |
![]()
Сообщение
#12
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
нет =/
Никогда раньше не сталкивался. Вот что получилось: Раскрывающийся текст
Ничего... На QEvent::MouseButtonPress срабатывает =/ |
|
|
abc |
![]()
Сообщение
#13
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
опять же viewport
graphicsView->viewport->installEventFilter(this); |
|
|
RazrFalcon |
![]()
Сообщение
#14
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Не помогло
![]() |
|
|
abc |
![]()
Сообщение
#15
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
это в любом случае нужно возвращать, а у тебя в else
return QMainWindow::eventFilter(obj, event); не знаю, что ещё, должно работать |
|
|
RazrFalcon |
![]()
Сообщение
#16
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
![]() без else вообще не работает, просто пустой QGraphicsView |
|
|
abc |
![]()
Сообщение
#17
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#18
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Рабочий пример:
.cpp Раскрывающийся текст
Раскрывающийся текст
PS: Это нормально, или есть более правильный метод?
Сообщение отредактировал RazrFalcon - 24.3.2011, 19:08 |
|
|
abc |
![]()
Сообщение
#19
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
пользуюсь дизайнером) а ты почему нет?
|
|
|
RazrFalcon |
![]()
Сообщение
#20
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Часто писали что так проще, да и мне уже стало проще.
+ не надо думать о ресайзе долго, раньше я через resizeEvent все пересчитывал. В общем можно и в дизайнере, просто я раньше не знал как там многое реализовать, но особых преимуществ пока не вижу. "Работает - не трожь" =) + особенно после этой темы http://www.forum.crossplatform.ru/index.php?showtopic=6236 Сообщение отредактировал RazrFalcon - 24.3.2011, 19:21 |
|
|
abc |
![]()
Сообщение
#21
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
а что за мысли о ресайзе? чего-то я никогда о нём не думаю)
|
|
|
RazrFalcon |
![]()
Сообщение
#22
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Ну, к примеру, что бы при растягивании, таблица растягивалась, а все остальные элементы, к примеру кнопки, оставались на местах.
Сложно объяснить, скорее всего ошибки новичка, не более. |
|
|
abc |
![]()
Сообщение
#23
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
это делается с помощью распорок (Spacer), а попросить кнопку не изменять размеры можно с помощью sizePolicy
Сообщение отредактировал abc - 24.3.2011, 19:51 |
|
|
RazrFalcon |
![]()
Сообщение
#24
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Раньше я этого не знал, сейчас уже знаю.
Без дизайнера мне проще, все на виду, я об опциях/настройках. |
|
|
abc |
![]()
Сообщение
#25
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
как это на виду без него?
|
|
|
RazrFalcon |
![]()
Сообщение
#26
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Я имею ввиду, что мне удобней самому все создавать, появляется чувство контроля, вот и все. Привычка и все тут. И не надо выкладывать ui =)
|
|
|
abc |
![]()
Сообщение
#27
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
с дизайнером можно почувствовать, что ты программист ВЫСОКОГО уровня
![]() |
|
|
RazrFalcon |
![]()
Сообщение
#28
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
![]() |
|
|
MetalKrot |
![]()
Сообщение
#29
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.8.2011 Пользователь №: 2816 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Рабочий пример: не очень то и рабочий. у меня move ловит только на краю graphicsView. почему не хочет в центре ловить? мужики, извиняйте, разобрался) |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 30.5.2025, 23:37 |