QGraphicsView setFixedSize
时间: 2023-10-29 18:45:25 浏览: 106
QGraphicsView::setFixedSize() 是一个函数,它可以设置 QGraphicsView 的固定大小。这意味着无论窗口大小如何变化,QGraphicsView 的大小都将保持不变。
该函数的语法如下:
void QGraphicsView::setFixedSize(int w, int h)
其中,w 和 h 分别表示 QGraphicsView 的宽度和高度,单位为像素。调用该函数后,QGraphicsView 将被设置为固定大小,并且将忽略任何尝试更改其大小的操作。
相关问题
QGraphicsScene中调用了QGraphicsView的fitInView(itemsBoundingRect(), Qt::KeepAspectRatio);之后,QGraphicsScene和QGraphicsView都无法显示,问题原因是什么,如何解决
调用`fitInView`会自动调整视图的缩放和平移,以便将场景项适合视图。但是,如果场景项的边界矩形不正确或为空,则可能会导致视图无法显示场景。
要解决此问题,可以尝试以下几个步骤:
1.检查场景项是否正确添加到场景中,并且它们的位置和大小是否正确。
2.确保场景项的边界矩形正确计算。可以使用`QGraphicsItem::boundingRect()`方法计算边界矩形。
3.确保视图大小不为零,并且场景项的边界矩形不为空。
4.如果您仍然无法解决问题,请考虑在调用`fitInView`之前设置视图的初始大小和场景的初始大小。
例如,您可以在构造函数中设置视图和场景的初始大小:
```
MyView::MyView(QWidget* parent)
: QGraphicsView(parent)
{
// Set the initial size of the view
setFixedSize(800, 600);
// Create and set the scene
QGraphicsScene* scene = new QGraphicsScene(this);
setScene(scene);
// Set the initial size of the scene
scene->setSceneRect(0, 0, 800, 600);
// Add some items to the scene
scene->addRect(0, 0, 100, 100, QPen(), QBrush(Qt::red));
scene->addRect(200, 200, 100, 100, QPen(), QBrush(Qt::blue));
// Call fitInView to fit the items in the view
fitInView(scene->itemsBoundingRect(), Qt::KeepAspectRatio);
}
```
QGraphicsView 设置大小
QGraphicsView 的大小可以通过以下几种方式进行设置:
1. 使用 setFixedSize(width, height) 方法来设置固定大小,其中 width 和 height 是视图的宽度和高度。
2. 使用 setGeometry(x, y, width, height) 方法设置视图的位置和大小,其中 x 和 y 是视图的左上角坐标,width 和 height 是宽度和高度。
3. 使用 setMinimumSize(width, height) 和 setMaximumSize(width, height) 方法来设置视图的最小和最大尺寸。
4. 使用 setSceneRect(rect) 方法来设置视图的场景矩形大小,其中 rect 是一个 QRectF 对象,表示场景的矩形区域。
根据你的需求,选择适合的方法来设置 QGraphicsView 的大小。
阅读全文