crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

RazrFalcon
  опции профиля:
сообщение 23.3.2011, 23:39
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Главное(и единственное) окно - наследник QGraphicsView.
Но, mouseMoveEvent срабатывает только при нажатии ЛКМ, setMouseTracking(true); - не помогло.
Нужно отловить положение мышки относительно QGraphicsView/QGraphicsScene.

PS: проблема в том, что кроме QGraphicsView у меня должны быть и другие элементы на форме, но тогда я не могу перехватить положение мыши...
То есть, если главное окно наследник QMainWindow, то как отловить положение мыши над QGraphicsView?

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
RazrFalcon
  опции профиля:
сообщение 24.3.2011, 14:16
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Не вышло.
Вот код:
.cpp
Раскрывающийся текст
#include "plot.h"
#include <QtDebug>

Plot::Plot()
{
    QGraphicsScene *scene = new QGraphicsScene();

    QPen pen(Qt::black, 2.0);

    //setMouseTracking(true);

    qsrand(QDateTime::currentDateTime().toTime_t());

    int x1=0;
    int x2=0;
    int y1=0;
    int y2=0;
    for (int i=1,s=5; i<11; i++, s+=5)
    {
        x2 = x1+s;
        y2 = qrand()%100;

        scene->addLine(x1,y1,x2,y2,pen);
        qDebug()<<x1<<y1<<x2<<y2;

        x1 = x2;
        y1 = y2;
        x2 = s*(i+1);
        y2 = qrand()%100;

        scene->addLine(x1,y1,x2,y2,pen);
        qDebug()<<x1<<y1<<x2<<y2;

        x1 = x2;
        y1 = y2;

        qDebug()<<"-------------";
    }

    setScene(scene);
    setDragMode(QGraphicsView::ScrollHandDrag);
    setRenderHint(QPainter::Antialiasing, true);
    viewport()->setMouseTracking(true);

    //setMouseTracking(true);

    //setWindowState(Qt::WindowMaximized);
    resize(560,350);
}

void Plot::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
    qDebug()<<event->scenePos();
}


.h
Раскрывающийся текст
#ifndef PLOT_H
#define PLOT_H

#include <QtGui>
#include <QMainWindow>

class Plot : public QGraphicsView
{
    Q_OBJECT

public:
    Plot();

private:
    void mouseMoveEvent(QGraphicsSceneMouseEvent *event);

};
#endif // PLOT_H


Выглядит то так:

Как сюда другие элементы добавлять?

PS: я понимаю что это все звучит по идиотски, но я на этом застрял прилично.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Перемещение мыши над QGraphicsView   23.3.2011, 23:39
- - abc   а что хочешь делать с этим MoveEvent?   24.3.2011, 0:08
- - Алексей1153   наверное void QWidget::setMouseTracking ( bool en...   24.3.2011, 8:10
- - RazrFalcon   Суть: есть окно, наследник QGraphicsView. Из-за эт...   24.3.2011, 8:23
- - abc   если ты в дизайнере поставишь setMouseTracking на ...   24.3.2011, 12:24
- - RazrFalcon   Не вышло. Вот код: .cpp Раскрывающийся текст#inclu...   24.3.2011, 14:16
- - abc   где ты нашёл этот метод? void mouseMoveEvent(QGrap...   24.3.2011, 15:00
- - RazrFalcon   Ура, работает. >>Если виджеты на сцену, то ...   24.3.2011, 15:12
- - abc   зачем ты полез наследоваться от вью? создай виджет...   24.3.2011, 15:19
- - RazrFalcon   Но тогда я буду перехватывать положение курсора от...   24.3.2011, 15:24
- - abc   ты не знаком с eventFilter? http://doc.crossplatfo...   24.3.2011, 16:02
- - RazrFalcon   нет =/ Никогда раньше не сталкивался. Вот что полу...   24.3.2011, 16:42
- - abc   опять же viewport graphicsView->viewport->in...   24.3.2011, 16:52
- - RazrFalcon   Не помогло   24.3.2011, 17:03
- - abc   это в любом случае нужно возвращать, а у тебя в el...   24.3.2011, 17:24
- - RazrFalcon   без else вообще не работает, просто пустой QGraphi...   24.3.2011, 17:46
- - abc   забудь про else) Цитата(RazrFalcon @ 24.3.201...   24.3.2011, 18:48
- - RazrFalcon   Рабочий пример: .cpp Раскрывающийся текст#include ...   24.3.2011, 19:07
- - abc   пользуюсь дизайнером) а ты почему нет?   24.3.2011, 19:12
- - RazrFalcon   Часто писали что так проще, да и мне уже стало про...   24.3.2011, 19:18
- - abc   а что за мысли о ресайзе? чего-то я никогда о нём ...   24.3.2011, 19:25
- - RazrFalcon   Ну, к примеру, что бы при растягивании, таблица ра...   24.3.2011, 19:35
- - abc   это делается с помощью распорок (Spacer), а попрос...   24.3.2011, 19:50
- - RazrFalcon   Раньше я этого не знал, сейчас уже знаю. Без дизай...   24.3.2011, 20:27
- - abc   как это на виду без него?   24.3.2011, 20:43
- - RazrFalcon   Я имею ввиду, что мне удобней самому все создавать...   24.3.2011, 21:10
- - abc   с дизайнером можно почувствовать, что ты программи...   24.3.2011, 21:26
- - RazrFalcon   RE: Перемещение мыши над QGraphicsView   24.3.2011, 22:11
- - MetalKrot   ЦитатаРабочий пример: не очень то и рабочий. у ме...   18.8.2011, 12:06


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 24.5.2025, 5:40