crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QGraphicsScene какие элементы находяться под курсором
fabricant
  опции профиля:
сообщение 10.1.2012, 23:24
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 10.1.2012
Пользователь №: 3115

Спасибо сказали: 0 раз(а)




Репутация:   0  


как узнать какие элементы находяться под курсором в QGraphicsScene?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 10.1.2012, 23:33
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(fabricant @ 11.1.2012, 0:24) *
как узнать какие элементы находяться под курсором в QGraphicsScene?

Посмотри на семейство методов QGraphicsScene::items.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fabricant
  опции профиля:
сообщение 11.1.2012, 0:10
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 10.1.2012
Пользователь №: 3115

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо подошло itemAt. У меня теперь другой вопрос как проверить этот item QPlainTextEdit
if(itemAt(event->scenePos())==edit) и if(itemAt(event->scenePos())==proxy) не работает
if(itemAt(event->scenePos())) работает но там могут быть и другие элементы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 11.1.2012, 0:25
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


А ты распечатай что он находит.
qDebug() << itemAt( event->scenePos() );
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fabricant
  опции профиля:
сообщение 11.1.2012, 1:01
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 10.1.2012
Пользователь №: 3115

Спасибо сказали: 0 раз(а)




Репутация:   0  


itemAt возвращает указатель я получил 0x531180. есть какая то функция определить тип указателя?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 11.1.2012, 1:13
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


А вышеуказанная команда разве не показывает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fabricant
  опции профиля:
сообщение 11.1.2012, 1:16
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 10.1.2012
Пользователь №: 3115

Спасибо сказали: 0 раз(а)




Репутация:   0  


не понял какая именно команда itemAt возвращает указатель(адрес), а qDebug() вывела этот адрес.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 11.1.2012, 10:19
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Да, qDebug выводит подробную информацию с именем класса для объектов созданных от QGraphicsObject, т.к. в предках этого класса есть QObject с метасистемой.
Тогда остается метод type(), в своих классах его нужно переопределять.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.11.2024, 1:27