QGraphicsRectItem 例子用c++
时间: 2023-07-01 07:09:46 浏览: 143
下面是一个使用 QGraphicsRectItem 的简单示例:
```cpp
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsRectItem>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建场景
QGraphicsScene scene;
// 创建矩形项
QGraphicsRectItem *rectItem = new QGraphicsRectItem(0, 0, 100, 100);
// 将矩形项添加到场景中
scene.addItem(rectItem);
// 创建视图
QGraphicsView view(&scene);
// 设置视图大小
view.resize(400, 300);
// 显示视图
view.show();
return a.exec();
}
```
在上面的示例中,我们创建了一个 QGraphicsScene,然后创建了一个 QGraphicsRectItem,并将其添加到场景中。接下来,我们创建了一个 QGraphicsView,将视图大小设置为 400x300,并将其显示出来。
运行程序后,应该会看到一个白色的矩形在黑色背景中央。
相关问题
可以给个使用C++实现这个功能的方法吗
当然可以,以下是一个使用C++实现opt软件中roi校正基准设置中参数的水平&垂直&角度这个功能的例子:
```c++
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QGraphicsView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
// 创建ROI区域对象
QGraphicsItem *roi = new QGraphicsRectItem(0, 0, 100, 100); // 以矩形为例
// 设置ROI区域的旋转、平移和缩放
roi->setTransform(QTransform().rotate(45).translate(100, 100).scale(2, 2)); // 以旋转45度、平移(100, 100)、缩放2倍为例
// 水平和垂直移动
roi->moveBy(50, 0); // 水平移动50个像素
roi->moveBy(0, -50); // 垂直移动50个像素
// 角度旋转
roi->setRotation(90); // 旋转90度
// 将ROI区域对象添加到场景中
scene.addItem(roi);
// 显示场景
view.show();
return app.exec();
}
```
在这个例子中,我们创建了一个矩形对象作为ROI区域,然后使用setTransform()函数设置ROI区域的旋转、平移和缩放,使用moveBy()函数实现水平和垂直移动,使用setRotation()函数实现角度旋转,最后将ROI区域对象添加到场景中并显示出来。
C++ QVBoxLayout添加一个QGraphicsScene并显示
可以使用如下的C++代码实现:
```cpp
#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QVBoxLayout>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建QGraphicsView和QGraphicsScene
QGraphicsView view;
QGraphicsScene scene;
view.setScene(&scene);
// 创建QWidget并设置布局为QVBoxLayout
QWidget widget;
QVBoxLayout *layout = new QVBoxLayout(&widget);
layout->addWidget(&view);
// 添加一个矩形到QGraphicsScene中
QGraphicsRectItem *rect = scene.addRect(0, 0, 100, 100);
rect->setFlag(QGraphicsItem::ItemIsMovable);
widget.show();
return app.exec();
}
```
在这个例子中,我们创建了一个QGraphicsView和QGraphicsScene。然后,我们创建了一个QWidget,并将其布局设置为QVBoxLayout。接着,我们将QGraphicsView添加到QVBoxLayout中。最后,我们添加了一个矩形到QGraphicsScene中,并将其设置为可移动的。注意,这里我们使用了QGraphicsItem::ItemIsMovable标志来设置矩形可移动。最后,我们显示QWidget并启动应用程序的事件循环。
阅读全文