将 QGraphicsView 锚定到屏幕的一角
Anchoring a QGraphicsView to the corner of the screen
我有一个渲染我的游戏的QGraphicsView
。此视图始终填满整个屏幕。在右上角,我还有另一个QGraphicsView
用作迷你地图;它位于游戏视图上方。我希望这个迷你地图锚定在屏幕的右上角,始终保持其大小。这段代码几乎可以工作,除了小地图的左侧永远不会改变(这是意料之中的)。
void MainWindow::resizeEvent(QResizeEvent *event)
{
mainWindow->graphicsView->resize(event->size().width(), event->size().height());
QRect newRect(mainWindow->miniMapGraphicsView->geometry());
newRect.setRight(event->size().width() - 20);
mainWindow->miniMapGraphicsView->setGeometry(newRect);
}
我该怎么做?
当您想以某种方式定位小部件时,布局通常是最好的方法。
将QFormLayout
添加到graphicsView
,并将其layoutDirection
设置为 Qt::RightToLeft
。然后将miniMapGraphicsView
添加到布局中。编辑小地图的属性,将其水平和垂直sizePolicy
设置为 Fixed
,并将其minimumSize
和maximumSize
设置为您想要的尺寸。
另一种方法是使用QGridLayout
并使用水平和垂直间隔将迷你地图推送到视图的任何角落。
注意:默认情况下,布局设置了边距,因此如果您希望小部件在边缘处紧密对齐,请将其归零。
相关文章:
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 使用 SFML 和 C++ 将 Pixel 打印到屏幕上
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- Winapi:屏幕截图未显示在窗口中
- 如何在快板的屏幕中显示子位图的绘制?
- 按回车键后输出屏幕关闭
- 要在屏幕上绘制一些小瓷砖,我应该使用 QQuickItem 还是 QQuickPaintedItem?
- SFML 向下移动时如何围绕屏幕中心旋转?
- 截取屏幕截图后程序卡住
- C++鼠标单击时的屏幕截图不起作用
- 屏幕插入运算符<<的运算符过载问题
- 获取网格中心的屏幕位置
- SFML 中的字体.信息不显示在屏幕上.显示的不是信息,而是点
- 如何在屏幕上环绕x和y?
- GetDIBits 在屏幕捕获函数中多次迭代后返回零
- OpenGL ES 2.0将纹理绘制到屏幕上是行不通的
- GTKMM:拍摄绘图区域的屏幕截图?
- OpenGL - 添加第二个着色器属性会导致空白屏幕
- 将 QGraphicsView 锚定到屏幕的一角