qt在widget窗口上new一个QgrapicsView控件并将widget设为为父窗口,并在QgrapicsView控件上画一个10X10的长为50宽为50的矩形
时间: 2024-03-11 08:47:27 浏览: 57
福优林@Qt5小白变大牛初级篇word---第7章.pdf
好的,以下是代码实现:
```cpp
#include <QApplication>
#include <QWidget>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsRectItem>
#include <QPen>
#include <QBrush>
#include <QColor>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建QWidget窗口
QWidget widget;
// 创建QGraphicsView控件
QGraphicsView *view = new QGraphicsView(&widget);
// 将QGraphicsView控件设为QWidget的子控件
view->setParent(&widget);
// 设置QGraphicsView控件的大小和位置
view->setGeometry(0, 0, 300, 300);
// 创建QGraphicsScene场景
QGraphicsScene *scene = new QGraphicsScene(&widget);
// 在QGraphicsScene场景上画一个长为50宽为50的矩形
QGraphicsRectItem *rect = new QGraphicsRectItem(0, 0, 50, 50);
rect->setPen(QPen(QColor(255, 0, 0)));
rect->setBrush(QBrush(QColor(255, 255, 255)));
rect->setPos(20, 20);
scene->addItem(rect);
// 将QGraphicsScene场景设置到QGraphicsView控件上
view->setScene(scene);
widget.show();
return a.exec();
}
```
在这个例子中,我们创建了一个QWidget窗口,并在其中添加了一个QGraphicsView控件。然后我们创建了一个QGraphicsScene场景,并将其添加到QGraphicsView控件中。最后,我们在QGraphicsScene场景上画了一个长为50宽为50的矩形,并将其移动到了(20, 20)的位置上。值得注意的是,我们要将QGraphicsView控件设置为QWidget的子控件,才能在QWidget窗口中显示QGraphicsView控件。
阅读全文