передача свойств элемента в главное окно с событиями в qt - PullRequest
0 голосов
/ 21 марта 2012

У меня есть qmainwindow, которое содержит несколько qgraphicsitems (унаследованный класс от qgraphicsitems) в пределах qgraphicsview.Эти элементы содержат их личные элементы, которые также унаследованы от qgraphicsitems.Эти предметы слушают события нажатия мыши.Эти элементы также имеют свои собственные свойства данных, такие как пользовательский идентификатор.

Я могу передавать события мыши из этих элементов в главное окно.Мне нужно передать указанный выше пользовательский идентификатор выбранного элемента также в главное окно вместе с событием, чтобы главное окно могло изменить свой внешний вид, чтобы соответствовать выбранному элементу.

1 Ответ

1 голос
/ 21 марта 2012

Может быть, я не получил ваш вопрос, но я бы использовал слоты и сигналы, а не события. Например, поместите сигнал на QGraphicsScene, что-то вроде:

void myItemClicked(int custom_id);

поэтому, когда ваши предметы ловят событие мыши, они могут сделать:

emit scene()->myItemClicked(my_id);

MainWindow может подключить этот сигнал, поступающий со сцены, к одному из ее слотов и изменить его свойства в соответствии с идентификатором элемента, поступающего по сигналу.

В противном случае, если вы позволите элементам вызывать методы QMainWindow (это выбор дизайна), вы можете сохранить указатель на него (например) в сцене, поэтому элементы могут делать:

scene()->mainwindow->aMethod();
...