qt在view视图中创建一个10行10列的宽和高都是20的矩形,并设置veiw视图和场景成比例关系
时间: 2024-03-16 16:43:09 浏览: 52
用Qt实现界面布局和图像处理
4星 · 用户满意度95%
您可以使用Qt的图形框架QGraphicsView和QGraphicsScene来创建一个10行10列的宽和高都是20的矩形,并设置view视图和场景成比例关系。下面是一个示例代码:
```
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
// 设置view视图和场景成比例关系
view.setRenderHint(QPainter::Antialiasing);
view.setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
view.setDragMode(QGraphicsView::ScrollHandDrag);
view.setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
view.setResizeAnchor(QGraphicsView::AnchorUnderMouse);
view.setInteractive(true);
// 设置场景大小
scene.setSceneRect(0, 0, 200, 200);
// 创建矩形
int row = 10;
int col = 10;
int width = 20;
int height = 20;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
QRectF rect(i * width, j * height, width, height);
QGraphicsRectItem *item = new QGraphicsRectItem(rect);
scene.addItem(item);
}
}
// 显示视图
view.show();
return app.exec();
}
```
在这个示例中,我们首先创建了一个QGraphicsScene对象和一个QGraphicsView对象,并将QGraphicsScene设置为QGraphicsView的场景。然后,我们使用setSceneRect()方法设置场景的大小,创建10行10列的矩形,并将它们添加到场景中。最后,我们显示了QGraphicsView视图。
注意,此示例中的矩形只是简单的黑色轮廓,您可以使用QGraphicsRectItem的setBrush()方法设置它们的颜色。
阅读全文