qt中获取qgraphicsscene中设置的底图的长宽
时间: 2023-03-12 14:51:44 浏览: 206
你可以使用QGraphicsScene::sceneRect()函数来获取QGraphicsScene中设置的底图的长宽,它会返回一个QRectF对象,你可以使用QRectF::width()和QRectF::height()函数获取它们的长宽值。
相关问题
qt中没有QGraphicsScene
引用\[1\]和引用\[2\]提供了关于Qt中使用QGraphicsScene的代码示例和说明。根据这些代码,可以看出Qt中确实有QGraphicsScene类,用于在界面中绘制图形和实现界面背景的优化。引用\[3\]中的代码也使用了QGraphicsScene来显示图像。因此,可以确定Qt中是有QGraphicsScene的。
#### 引用[.reference_title]
- *1* [qt QGraphicsScene 简单例子](https://blog.csdn.net/wowocpp/article/details/109576623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Qt中使用QGraphicsScene重写drawBackGround绘制背景](https://blog.csdn.net/weixin_44530868/article/details/109232483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [Qt中使用QGraphicsScene时出现的问题](https://blog.csdn.net/m0_50600895/article/details/116859174)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
qt4中QGraphicsScene如何删除QGraphicsProxyWidget
在Qt4中,`QGraphicsScene`是用来管理图形元素(如`QGraphicsItem`和`QGraphicsWidget`)的容器,而`QGraphicsProxyWidget`是一个代理,用于在场景中展示用户界面控件,但它本身并不直接存储在场景中。当你想要从场景中删除`QGraphicsProxyWidget`时,你需要通过以下步骤操作:
1. 首先,找到这个代理对应的原始`QWidget`。你可以通过`QGraphicsProxyWidget::widget()`方法获取到。
```cpp
QWidget *originalWidget = dynamic_cast<QWidget*>(proxyWidget->widget());
```
2. 确认`originalWidget`非空之后,从其父窗口或者布局中移除它。这取决于`originalWidget`是如何添加到场景中的,可能是作为顶层窗口、窗口内的部件,或者是其他布局中的成员。
```cpp
// 如果是顶级窗口
if (parentWindow)
parentWindow->removeChild(originalWidget);
// 或者如果是窗口内的部件
else if (originalWidget->parent())
originalWidget->parent()->removeChild(originalWidget);
// 如果是在QLayout中,需要调用layout的removeWidget()方法
else if (auto layout = qobject_cast<QLayout*>(originalWidget))
layout->removeWidget(originalWidget);
```
3. 最后,如果你的`QGraphicsProxyWidget`不再需要,也可以将其从`QGraphicsScene`中移除,但通常不需要手动删除,因为当`QGraphicsScene`的对象生命周期结束时,其中的所有内容会被自动清理。
```cpp
scene->removeItem(proxyWidget);
```
阅读全文