一 场景和窗口
头文件MyWidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include<QGraphicsScene> //场景
#include<QGraphicsLineItem> //线的场景
#include<QGraphicsPixmapItem> //图像的场景
#include<QGraphicsView> //将场景表现出来
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);
QGraphicsScene *_scene; //data model
QGraphicsView *_view; //show data model
signals:
public slots:
};
#endif // MYWIDGET_H
源文件 MyWidget.cpp
#include "MyWidget.h"
#include<QApplication>
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
_view = new QGraphicsView(this); //将场景在主窗口界面画出来
_view->setScene(_scene = new QGraphicsScene); //将场景设置在该窗口中
_scene->addItem(new QGraphicsLineItem(QLineF(QPointF(0, 0), QPointF(100, 100)))); //在创景窗口中画一条直线
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget w;
w.show();
app.exec();
}
运行结果:
注意:此时画图的场景在主窗口的最左上方的位置,其大小刚好能花开图。
问题:怎样解决该问题使得图像在整个窗口进行展示呢?
思路一:增加一个窗口布局函数,将该场景添加到该布局中
源文件MyWidget.cpp
#include "MyWidget.h"
#include<QAp