如何激活QGraphicsScene中添加的小部件以获得键盘焦点?

时间:2012-01-01 09:18:38

标签: c++ qt

以下代码用于使用QGraphicsProxyWidget将QWidget添加到QGraphicsScene中:

        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。

0 个答案:

没有答案