Следующий код был использован для добавления 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.