Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Fregloin от Декабрь 16, 2011, 16:48



Название: Как узнать, какой виджет находится под курсором мыши?
Отправлено: Fregloin от Декабрь 16, 2011, 16:48
Есть виджет, в котором куча layout, в которых находятся дочерние виджеты (которые могут содержать в себе другие виджеты).
Как узнать, какой виджет находится под указателем мыши?

Мне нужно на сцене рисовать шкафы с оборудованием. Шкаф представляет собой прямоугольник, в котором могут распологаться горизонатльно кассеты с модулями ввода/вывода, блоками питания и т.п. как показано на рисунке. Все это я организовал с помощью QFrame и Q(H,V,Grid)Layout.

Родительский фрейм завернут в GraphicsProxyWidget.

Мне нужно в контекстном меню сцены, узнать на каком виджете был клик.
Как это сделать? не нашёл у виджета метода, который бы возвращал дочерний виджет под указателем.


Название: Re: Как узнать, какой виджет находится под курсором мыши?
Отправлено: Fregloin от Декабрь 16, 2011, 16:50
раньше все рисовалось вручную, и было с этим проще, но выглядело убого, решил не заморачиваться, рисовать виджетами, все равно по сути выводить в основном текст.


Название: Re: Как узнать, какой виджет находится под курсором мыши?
Отправлено: _OLEGator_ от Декабрь 16, 2011, 16:55
Оно?
Код
C++ (Qt)
QWidget * QWidget::childAt ( const QPoint & p ) const


Название: Re: Как узнать, какой виджет находится под курсором мыши?
Отправлено: Fregloin от Декабрь 16, 2011, 17:22
возможно, щас попробую, спасибо!


Название: Re: Как узнать, какой виджет находится под курсором мыши?
Отправлено: panAlexey от Декабрь 16, 2011, 18:26
раньше все рисовалось вручную, и было с этим проще, но выглядело убого, решил не заморачиваться, рисовать виджетами, все равно по сути выводить в основном текст.
тю. стоило переделывать? ;D
Драу примитив?