LINUX.ORG.RU

Qt QGraphicsItem.changed() - не отлавливает выделение

 ,


0

2

Добрый день. С-но ламерский вопрос - пишу что-то вроде мини-редактора. При клике на любой элемент в таблице должны появляться свойства элементов, чтобы в дальнейшем пользователь мог их отредактировать.

Чтобы иметь доступ к элементам, добавил их в специальный список и делаю проверку так:

void MainWindow::paintEvent(QPaintEvent *)
{

    for(int i=0; i<mlist.size(); i++)
    {
        EditorMovingObject *mo=mlist[i];

      if (mo->isSelected())
      {
          ui->twProperties->setItem(0,1,new QTableWidgetItem(mo->name));
      }
      else
      {
          ui->twProperties->setItem(0,1,new QTableWidgetItem(""));
      }
    }

}
Однако это работает только один раз. Если я выбрал второй элемент, а потом обратно вернулся к первому, то ячейка таблицы не меняет свой текст. В чем это может быть дело? По идее, в paintEvent нажатие должно отлавливаться постоянно?

Извините за нубский вопрос


Ответ на: комментарий от raymank26

Спасибо за ответ! Такой способ не прокатит, т.е. он отлавливает нажатие на форму а не на объекты QGraphicsItem. Т.е. если я жму на объект, то нажатие не отловится.

gwyllum
() автор топика
Ответ на: комментарий от gwyllum

У QGraphicsItem тоже такая виртуальная функция есть. void QGraphicsItem::mousePressEvent ( QGraphicsSceneMouseEvent * event ) Только перед использованием почитай описание.

raymank26
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.