Как активировать виджет, добавленный в QGraphicsScene, чтобы получить фокус клавиатуры? - PullRequest
0 голосов
/ 01 января 2012

Следующий код был использован для добавления QWidget в QGraphicsScene с использованием QGraphicsProxyWidget:

        QWidget *inter_form = new MapWidgetInteractorForm(0);
        inter_form->setAttribute(Qt::WA_DeleteOnClose);
        inter_form->setWindowOpacity(0.8);
        QGraphicsProxyWidget *item = view->scene()->addWidget(inter_form);
        item->setFlag(QGraphicsItem::ItemIsMovable);
        item->setFlag(QGraphicsItem::ItemIsFocusable);
        item->setFlag(QGraphicsItem::ItemIsPanel);
        item->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
        item->setZValue(65001.);
        item->setPos(0, 0);
        item->show();
        item->setFocus();

Однако виджет не может получить фокус клавиатуры.Только когда окно повторно активируется, либо пользователем, активирующим другое окно приложения, затем возвращающимся в приложение, либо путем переключения на другую вкладку и обратно (QGraphicsView был помещен во вкладку), тогда виджет получает фокус клавиатуры и работаетобычно!Что не так?

Я использую Qt 4.8.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...