Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: iukash от Март 23, 2010, 11:26



Название: События мыши QGraphicsSceneMouseEvent и рисование QPainter в ответ на событие
Отправлено: iukash от Март 23, 2010, 11:26
Такая проблема я наследовал класс QGraphicsItem и переопределил виртуальные функции
Цитировать
class MyClass: public QGraphicsItem
{
public:
    virtual QRectF boundingRect() const
    {
        return QRectF(0,0, 60, 60);
    }
    virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0)
    {
        painter->setPen(QPen(Qt::black));
        painter->setBrush(QBrush(Qt::green));
        painter->drawRect(QRectF(0, 0, 60, 60));
    }
    virtual void mousePressEvent(QGraphicsSceneMouseEvent* pe)
    {
        if(pe->buttons() & Qt::LeftButton)
        {
           // И хочу сюда добавить рисование что нибудь типа
           //  painter->drawLine(0,0,300,300);
           //КАК ЭТО СДЕЛАТЬ???
        }
     }


Название: Re: События мыши QGraphicsSceneMouseEvent и рисование QPainter в ответ на событие
Отправлено: GreatSnake от Март 23, 2010, 11:35
Что-то вроде этого:
Код
C++ (Qt)
class MyClass: public QGraphicsItem
{
public:
   virtual QRectF boundingRect() const
   {
       return QRectF(0,0, 60, 60);
   }
   virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0)
   {
       painter->setPen(QPen(Qt::black));
       painter->setBrush(QBrush(Qt::green));
 
       if( left_mouse_pressed_ )
       {
           painter->drawLine(0,0,300,300);
           left_mouse_pressed_ = false;
       }  else
       {
           painter->drawRect(QRectF(0, 0, 60, 60));
       }
   }
   virtual void mousePressEvent(QGraphicsSceneMouseEvent* pe)
   {
       if(pe->buttons() & Qt::LeftButton)
       {
          // И хочу сюда добавить рисование что нибудь типа
          //  painter->drawLine(0,0,300,300);
          //КАК ЭТО СДЕЛАТЬ???
          QGraphicsItem::update( 0,0,300,300 );
          left_mouse_pressed_ = true;
       }
    }
 
private:
 
    bool left_mouse_pressed_;
 
};
 


Название: Re: События мыши QGraphicsSceneMouseEvent и рисование QPainter в ответ на событие
Отправлено: iukash от Март 23, 2010, 12:14
GreatSnake СПАСИБИЩЕ ОГРОМНОЕ!!!