gpt4 book ai didi

c++ - QGLWidget + QGraphicsScene + QGraphicsView问题

转载 作者:行者123 更新时间:2023-11-28 01:11:32 26 4
gpt4 key购买 nike

我想使用 QGLWidget、QGraphicsScene 和 QGraphicsView 创建一个简单的缩略图查看器。我在将 QGLWidget 放在 QGraphicsScene 上时遇到问题。代码类似这样:

QGraphicsScene *testScene = new QGraphicsScene (0, 0, 400, 400, 0);

QGLWidget *testWidget1 = new QGLWidget();
testWidget1->renderText("Test text1");

QGLWidget *testWidget2 = new QGLWidget();
testWidget2->renderText("Test text2");

testScene->addWidget(testWidget1);
testScene->addWidget(testWidget2);

QGraphicsView *testView = new QGraphicsView();
testView->setScene(testScene);
testView->show()

可以在 QGraphicsScene/QGraphicsView 上放置几个 QGLWidgets 吗?我哪里做错了什么?是否有任何其他组件可以嵌入 QGLWidgets 并在屏幕上显示它们?

感谢帮助

最佳答案

要使QGLWidget 显示在QGraphicsView 中,您应该为它重定向绘制。您可以像这样覆盖 paintGL:

virtual void MyGLWidget::paintGL()
{
QGLWidget::paintGL();
//support redirecting painting
QPaintDevice* device = QPainter::redirected(this);
if (device != NULL && device != this)
{
QImage image = grabFrameBuffer();
QPainter painter(this);
painter.drawImage(QPointF(0.0,0.0),image);
}
}

它适用于大多数平台,但仍然碰巧显示黑色小部件。

关于c++ - QGLWidget + QGraphicsScene + QGraphicsView问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2776872/

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