Russian Qt Forum

Qt => Общие вопросы => Тема начата: Антонио от Июнь 09, 2004, 16:17



Название: Перехват событий мыши в главном окне приложения
Отправлено: Антонио от Июнь 09, 2004, 16:17
У меня есть главное окно приложения - класс, наследуемый от QMainWindow. Я в нем хочу перехватывать события от мыши. Как? Имеется в виду просто нажатие клавиши. Прочитав доки по Qt и переопределил в своем классе void mousePressEvent(QMouseEvent* e); Нифига не перехватывается!! :( Даже isEnabled() пробовал - он возвращает true...


Название: Перехват событий мыши в главном окне приложения
Отправлено: Антонио от Июнь 09, 2004, 16:30
Забыл добавить, что я в этом окне на канве, наверное это важно... В конструкторе класса моего окна вот такой код:

m_canvas = new QCanvas(this);
m_canvas->resize(800, 600);
m_view = new QCanvasView(m_canvas, this);
m_view->resize(size());
m_view->show();
setCentralWidget(m_view);


Название: Перехват событий мыши в главном окне приложения
Отправлено: Admin от Июнь 09, 2004, 17:07
QWidget дока, почитай на тему

bool mouseTracking
This property holds whether mouse tracking is enabled for the widget.

If mouse tracking is disabled (the default), the widget only receives mouse move events when at least one mouse button is pressed while the mouse is being moved.

If mouse tracking is enabled, the widget receives mouse move events even if no buttons are pressed.


See also mouseMoveEvent() and QApplication::setGlobalMouseTracking().

Set this property's value with setMouseTracking() and get this property's value with hasMouseTracking().


Название: Перехват событий мыши в главном окне приложения
Отправлено: EugeneVC от Июнь 29, 2004, 14:25
Возникла проблемка такого рода

делаю
qApp->setGlobalMouseTracking(true);

для widget

setMouseTracking(true);

Внимение вопроc:

почему я не отслеживаю события движения мыши
приходится кнопку нажимать.