Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: negative от Март 06, 2009, 15:52



Название: QSqrollArea onClick
Отправлено: negative от Март 06, 2009, 15:52
Я тут начал разбираться с QT и обнаружил, что по умолчанию слот приуроченный к клику мыши есть только у потомков QAbstractButton. Что совершенно не радует.

Передо мной стоит задача - отслеживать клики по QSqrollArea (я ее в дальнейшем собираюсь перетаскивать мышкой). И в общем не очень понятно как это сделать. Делать двойное наследование от QSqrollArea и QAbstractButton, думаю, не выход. Я тут почитал про слоты\сигналы, но как-то так и не понял, как же реализовать вышеописанное отслеживание.

Можно небольшой примерчик кода, обрабатывающий клик объекта, отличного от кнопки?


Название: Re: QSqrollArea onClick
Отправлено: pastor от Март 06, 2009, 16:19
Я тут начал разбираться с QT и обнаружил, что по умолчанию слот приуроченный к клику мыши есть только у потомков QAbstractButton. Что совершенно не радует.

слот сигнал

Передо мной стоит задача - отслеживать клики по QSqrollArea (я ее в дальнейшем собираюсь перетаскивать мышкой). И в общем не очень понятно как это сделать. Делать двойное наследование от QSqrollArea и QAbstractButton, думаю, не выход. Я тут почитал про слоты\сигналы, но как-то так и не понял, как же реализовать вышеописанное отслеживание.

Наследуемся от QScrollArea и переопределяем нужный нам метод:

Код
C++ (Qt)
void QAbstractScrollArea::mouseDoubleClickEvent ( QMouseEvent * e )
void QAbstractScrollArea::mouseMoveEvent ( QMouseEvent * e )
void QAbstractScrollArea::mousePressEvent ( QMouseEvent * e )
void QAbstractScrollArea::mouseReleaseEvent ( QMouseEvent * e )


Название: Re: QSqrollArea onClick
Отправлено: negative от Март 06, 2009, 16:22
Урааа!) ;D ;D ;D Спасибо большое)