QGraphicsView im Vollbild wird nach close nicht geschlossen
Verfasst: 10. Juni 2010 12:06
Hallo,
meine in einen Dialog eingebettete QGraphicsView wird beim schießen des Dialoges nicht mitgeschlossen. auch ein close auf die view bringt nichts.
Auf folgende Weise rufe ich auf:
gwd ist hierbei der Dialog, welches das Widget graphicsWidget beinhalt.
das graphicsWidget beinhaltet die besagte View, welche folgendermaßen initialisiert wird:
das GraphcisWidget reagiert auf Keyevents, so dass, wenn ich F11 drücke an den darüberliegenden Dialog closeEvent gesendet wird, welcher ein reject() auslöst (close() und accept() ebenfalls ausprobiert). Was dann passiert ist richtig merkwürdig, da zwar der GraphicsWidgetDialog geschlossen wird, das GraphicsWidget ansich aber bleibt. nur ein Strg+Alt+Entf bringt dieses zum verschwinden. Da die GraphicsView nach F11 auch nicht mehr auf Tasteneingaben reagiert, gehe ich davon aus, dass es ein Probem mit der View ansich handelt.
meine in einen Dialog eingebettete QGraphicsView wird beim schießen des Dialoges nicht mitgeschlossen. auch ein close auf die view bringt nichts.
Auf folgende Weise rufe ich auf:
Code: Alles auswählen
void DemoArrowDialog::setFullScreenDemo()
{
settings = gwd->saveGeometry();
gwd->graphicsWidget->setListenKeyEvents(true);
gwd->setContentsMargins(0,0,0,0);
gwd->setModal(true);
gwd->graphicsWidget->showFullScreen();
gwd->showFullScreen();
gwd->setFocus();
}Code: Alles auswählen
GraphicsWidgetDialog::GraphicsWidgetDialog(QWidget *parent) :
QDialog(parent)
{
graphicsWidget = new GraphicsWidget;
QGridLayout *layout = new QGridLayout;
layout->addWidget(graphicsWidget);
layout->setContentsMargins(0,0,0,0);
graphicsWidget->loadConfig();
graphicsWidget->loadArrowConfig("Arrow");
graphicsWidget->setArrowPosition(arrowPosition(arrowCenter));
graphicsWidget->update();
setLayout(layout);
connect(graphicsWidget,SIGNAL(closeEvent()),this,SLOT(reject()));
}das graphicsWidget beinhaltet die besagte View, welche folgendermaßen initialisiert wird:
Code: Alles auswählen
scene = new QGraphicsScene;
scene->setItemIndexMethod(QGraphicsScene::BspTreeIndex);
//scene->setSceneRect(0,0,resolution.x(),resolution.y());
view = new QGraphicsView(scene);
view->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
view->setFrameStyle(QFrame::NoFrame);
view->setBackgroundBrush(Qt::white);
view->setRenderHints(QPainter::Antialiasing);
view->setSceneRect(0,0,resolution.x(),resolution.y());