Russian Qt Forum
Сентябрь 30, 2024, 22:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кажется найден БАГ в QGraphicsTextItem  (Прочитано 2443 раз)
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 такое не наблюдается.

Может кто сталкивался с этим?
Записан
merke
Гость
« Ответ #1 : Март 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);
       }
   }

Получаются не красивые костыли...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 21.