crossplatform.ru

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

> Наследник QGraphicsScene и ItemIsMovable
kenthfild
  опции профиля:
сообщение 23.5.2012, 20:47
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 13.5.2012
Пользователь №: 3375

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




Репутация:   0  


Доброго времени суток. У меня проблема с наследником QGraphicsScene. Я переопределил функцию mouseMoveEvent и все. То есть все остальные функции не трогал. Я на свою сцену добавляю объект (QGraphicsRectItem) и присваиваю ему флаг ItemIsMovable. При запуске программы объект не двигается. Переопределенная функция работает. Когда я меняю просто свою сцену на сцену QGraphicsScene - все работает. В чем проблема подскажите.


вот конструктор Диалога на которой и расположена сцена.

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),

    ui(new Ui::Dialog)
{

    ui->setupUi(this);

    scene = new QMyScene(this);
    scene->setSceneRect(0,0,500,500);


    ui->graphicsView->setFixedSize(500,500);
    ui->graphicsView->setScene(scene);



    QBrush greybrush(Qt::gray);
    QPen blackpen(Qt::black);
    blackpen.setWidth(1);


    item = scene->addRect(0,0,150,150,blackpen,greybrush);
    item->setFlag(QGraphicsItem::ItemIsMovable,true);



    connect(scene,SIGNAL(CursorSceneCoordsX(QString)),ui->lineEdit,SLOT(setText(QString)));
    connect(scene,SIGNAL(CursorSceneCoordsY(QString)),ui->lineEdit_2,SLOT(setText(QString)));

}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kenthfild
  опции профиля:
сообщение 24.5.2012, 11:06
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 13.5.2012
Пользователь №: 3375

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




Репутация:   0  


Да, чет я протупил с этим... Вот заголовочный


#ifndef QMYSCENE_H
#define QMYSCENE_H

#include "QGraphicsScene"
#include "QGraphicsView"

class QMyScene : public QGraphicsScene
{
   Q_OBJECT

public:
    QMyScene(QObject *parent = 0);

    protected:
    void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent);
    void mousePressEvent(QGraphicsSceneMouseEvent *event);

signals:
    void CursorSceneCoordsX(QString coordX);
    void CursorSceneCoordsY(QString coordY);

private:

};

#endif // QMYSCENE_H



Вот спп файл

#include "qmyscene.h"
#include "QDebug"
#include <QGraphicsSceneMouseEvent>

QMyScene::QMyScene(QObject *parent)
{

}




void QMyScene::mouseMoveEvent(QGraphicsSceneMouseEvent * mouseEvent)
{

     QPointF coords = mouseEvent->scenePos();
    emit CursorSceneCoordsX(QString::number(coords.x()));
    emit CursorSceneCoordsY(QString::number(coords.y()));

}

void QMyScene::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
    qDebug()<<event->button();
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 26.11.2024, 12:27