Russian Qt Forum

Qt => Общие вопросы => Тема начата: merke от Март 09, 2011, 14:31



Название: Кажется найден БАГ в QGraphicsTextItem
Отправлено: merke от Март 09, 2011, 14:31
Всем привет.
Сегодня понадобилось в созданный мною на сцене прямоугольник добавить текст. Делаю во так:

Код
C++ (Qt)
if (mouseEvent->button() == Qt::RightButton)
   {
       QGraphicsItem * item = itemAt(mouseEvent->scenePos());
       if (item)
       {
           QGraphicsTextItem *ptext = new QGraphicsTextItem(item, this);
           ptext->setPlainText("Hi");
           ptext->setData(0, "Text");
           ptext->setTextInteractionFlags(Qt::TextEditable);
       }
   }

И после добавления текста включается MouseTracking у моего QGraphicsView.
Ни чего не понимаю. Внаглую после добавления текста делаю вот так:
Код:
        ui->graphicsView->setMouseTracking(false);

И всё равно.

Ведь при добавлении других QGraphicsItem такое не наблюдается.

Может кто сталкивался с этим?


Название: Re: Кажется найден БАГ в QGraphicsTextItem
Отправлено: merke от Март 09, 2011, 14:44
Решил пока следующим образом.

С класса MainWindow перекидываю в мой унаследованный от сцены класс указательно нв вьюшку

Код
C++ (Qt)
   scene->setPtrForGrView(ui->graphicsView);

Код
C++ (Qt)
   void setPtrForGrView(QGraphicsView *ptrGrView)
   {
       ptrGr = ptrGrView;
   }

И при создании текста выключаю MouseTracking

Код
C++ (Qt)
  if (mouseEvent->button() == Qt::RightButton)
   {
       QGraphicsItem * item = itemAt(mouseEvent->scenePos());
       if (item)
       {
           QGraphicsTextItem *ptext = new QGraphicsTextItem(item, this);
           ptext->setPlainText("Hi");
           ptext->setData(0, "Text");
           ptext->setTextInteractionFlags(Qt::TextEditable);
           ptrGr->viewport()->setMouseTracking(false);
       }
   }

Получаются не красивые костыли...