gpt4 book ai didi

c++ - Dialog 关闭后嵌入式 QGraphicsView 不隐藏

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:02:15 28 4
gpt4 key购买 nike

我在模式、showNormal 和 showFullscreen 中调用 QDialog。在正常模式下一切正常。使用 Keyevent,对话框按预期关闭。在全屏模式下,在一个关键事件之后对话框关闭,但 QGraphicsView 将保持在顶部。我尝试过的所有事情(比如关闭/更新 View )都失败了。 View 位于顶部。

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());

也许我的结构将有助于解决问题:

这调用名为 GraphicsWidgetDialog 的 QDialog。

void DemoArrowDialog::setDemo() {
gwd->graphicsWidget->setListenKeyEvents(true);
gwd->setWindowTitle("Demo");
gwd->setFixedSize(500,500);
gwd->restoreGeometry(settings);
gwd->setContentsMargins(0,0,0,0);
gwd->setModal(false);
gwd->showNormal();
gwd->graphicsWidget->show();
gwd->setFocus();
}

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();
}

这是 GraphicsWidgetDialog 的定义

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()));
}

GraphicsWidget 是包含 QGraphcisView 和 Scene 的 Widget

在 keyPessEvent 上它会发出 closeEvent()。

有什么想法吗?

最佳答案

抱歉,自从我编写 Qt 以来已经有一段时间了。但也许您需要调用 gwd->setModal(false) 或在关闭对话框之前离开全屏模式?

关于c++ - Dialog 关闭后嵌入式 QGraphicsView 不隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013603/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com