Название: Сэмулировать наведение мышки на виджет Отправлено: pakulo от Июль 11, 2007, 11:26 Есть виджет, который в зависимости от координат курсора рисует на виджете обьекты в специальном цвете...
Через некоторое время вызывается событие которое меняет обьекты местами и мне нужно вызвать (сэмулировать) событие наведение курсора на виджет, что бы обьекты нарисовались в своих цветах в зависимости от позиции курсора... Обрабатываю наведение так: bool event(QEvent *e) { if (e->type() == QEvent::MouseMove) ... } Хотел сделать так event(new QMouseEvent(...)) Но не знаю как задать параметры, а именно позцию курсора относительно виджета, глобальную и т.п. Ну если знать позицию курсора глобальную то можно и относительно виджета получить... но может как-то проще можно все это сделать? Название: Сэмулировать наведение мышки на виджет Отправлено: WW от Июль 11, 2007, 11:32 а void QCoreApplication::postEvent ( QObject * receiver, QEvent * event ) [static] не поможет?
Название: Сэмулировать наведение мышки на виджет Отправлено: pakulo от Июль 11, 2007, 12:16 А как его использовать?
Я могу сделать и так event(QEvent *) Но мне нужно создать обьект QEvent... Название: Сэмулировать наведение мышки на виджет Отправлено: SABROG от Июль 11, 2007, 12:51 Цитировать Public Functions QMouseEvent ( Type type, const QPoint & position, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers ) QMouseEvent ( Type type, const QPoint & pos, const QPoint & globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers ) Qt::MouseButton button () const Qt::MouseButtons buttons () const const QPoint & globalPos () const int globalX () const int globalY () const const QPoint & pos () const int x () const int y () const 1 public function inherited from QInputEvent 6 public functions inherited from QEvent Как-то так: Код:
Название: Сэмулировать наведение мышки на виджет Отправлено: pakulo от Июль 11, 2007, 14:45 Да, именно так...
Но вот я не знаю как получить координаты курсора... Прочитал в ассистенте "globalPos() may differ a lot from the current pointer position QCursor::pos()". Т.е. я могу через статическую QCursor::pos() получить координаты курсора, отнять координаты окна и виджета и полуту нужные мне координаты... Но что значит эта фраза? Название: Сэмулировать наведение мышки на виджет Отправлено: Sergeich от Июль 11, 2007, 16:29 Код: QPoint pos = QCursor::pos(); добавлено спустя 13 минут: Цитировать Returns the global position of the mouse pointer at the time of the event. This is important on asynchronous window systems like X11. Whenever you move your widgets around in response to mouse events, globalPos() may differ a lot from the current pointer position QCursor::pos(), and from QWidget::mapToGlobal( pos() ). Перевод:Цитировать Возвращает глобальную позицию указателя мыши во время (генерации!) события. Это важно для асинхронных оконных систем, таких как X11. Всякий раз, когда вы перемещаете ваши виджеты в ответ на события мыши, globalPos() может значительно отличаться от текущей позиции курсора QCursor::pos() и от QWidget::mapToGlobal( pos() ). Учи албанский ;)Название: Сэмулировать наведение мышки на виджет Отправлено: pakulo от Июль 11, 2007, 21:48 Цитата: "Sergeich" Учи албанский ;) Стараюсь... Спасибо большое!!!! |