调整 QGLWidget 的大小以适应我拥有的每个精灵大小
resizing QGLWidget to fit with each sprite size I have
我正在使用opengl创建2D地图编辑器来绘制简单的32x32精灵,但似乎我无法将QGLWidget的大小调整为大尺寸(即尺寸*精灵大小->1024 * 32),使用1024似乎只能正常工作(使用glwidget->setMinimumSize(...))。 我已经在谷歌上搜索了一段时间了,我发现唯一有趣的事情是子类化 QAbstractScrollArea 并将我的 QGLWidget 设置为它的视口(这就是 QGraphicsView 所做的),我也看到了所有 Qt opengl 示例,但我找不到任何可以提供帮助的东西(除了图像查看器示例,这不是我想要的),我还尝试了以下内容: horizontalScrollBar()->setMaximum(width * 32);
verticalScrollBar()->setMaximum(height * 32);
在滚动区域上将小部件可调整大小设置为 true/false,但仍然没有任何内容。任何想法我会怎么做?如果你要求我,我可以显示更多的代码。
使用 Qt v4.7.3。
我有两个想法:
如果可能的话,放弃使用QGLWidget的想法,直接将精灵放置在图形场景中(QGraphicsPixmapItem)。可能不是你想要的,但图形场景是为了处理很多项目而设计的,所以你需要的大多数东西(例如在项目上触发鼠标事件)已经实现。
或者只是使用 QGraphicsWidget 将 QGLWidget 放置在图形场景中。这应该会自动告诉场景它的大小,然后告诉视图场景的大小。如果场景不适合视图,滚动条会自动显示。
更新:
如此链接中所述,您可以在任何图形视图中使用 OpenGL:
view.setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
- 在 c++ 中拥有一组结构的正确方法是什么?
- 我应该如何表示我拥有的连续元素序列?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 现代 C++ 中作为类成员的非拥有指针
- 结构包含在两个头文件中,这两个文件我都不拥有
- 在函数中拥有函数原型的目的是什么?
- condition_variable、引用和线程:谁拥有锁?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- OpenGL 着色器不绘制任何东西 - 糟糕的精灵类
- 有没有办法在 c++ 中拥有条件预处理器
- 为什么我不能拥有某些私有会员功能?
- 从精灵表在 sfml 中为精灵制作动画
- 如何拥有受约束的运算符模板?
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- CBasePin 递增对拥有过滤器的引用.循环引用?
- 谁拥有作为指向 Windows API 函数的指针传递的值?
- 是否可以获取成员函数模板参数的拥有对象?
- AABB 碰撞使实际精灵的大小翻倍
- 如何在精灵表上的两个不同部分之间来回切换,同时用户仍使用 SFML 持有密钥
- 调整 QGLWidget 的大小以适应我拥有的每个精灵大小