gpt4 book ai didi

c++ - 调整 QGLWidget 的大小以适应我拥有的每个 Sprite 大小

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:23 24 4
gpt4 key购买 nike

我正在使用 opengl 创建 2D map 编辑器来绘制简单的 32x32 Sprite ,但似乎我无法将我的 QGLWidget 调整为较大尺寸(即尺寸 * Sprite 尺寸 -> 1024 * 32),仅使用 1024 似乎可以正常工作(使用 glwidget->setMinimumSize(...))。我已经用谷歌搜索了一段时间,我发现的唯一有趣的事情是子类化 QAbstractScrollArea 并将我的 QGLWidget 设置为它的视口(viewport)(这就是 QGraphicsView 所做的),我也看到了所有 Qt opengl 示例,但我找不到任何东西可以提供帮助(图像查看器示例除外,这不是我想要的),我还尝试了以下操作:horizo​​ntalScrollBar()->setMaximum(width * 32);
verticalScrollBar()->setMaximum(height * 32);
在 scrollarea 上将可调整大小的小部件设置为 true/false,但仍然没有。任何想法我会怎么做?如果您要求,我可以展示更多代码。

使用 Qt v4.7.3。

最佳答案

我有两个想法:

如果可能,放弃使用 QGLWidget 的想法,将 Sprite 直接放在图形场景 (QGraphicsPixmapItem) 中。可能不是您想要的,但图形场景是用来处理大量项目的,因此您需要的大部分内容(例如在项目上触发鼠标事件)已经实现。

或者使用 QGraphicsWidget 将 QGLWidget 放置在图形场景中。这应该会自动告诉场景它的大小,然后告诉 View 场景的大小。如果场景不适合 View ,滚动条会自动出现。

更新:

this link 中所述,您可以在任何图形 View 中使用 OpenGL:

view.setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);

关于c++ - 调整 QGLWidget 的大小以适应我拥有的每个 Sprite 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872805/

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