Qt之二维绘图:QGraphicsScene与QGraphicsView的关系

一、Scene是一个场景,View是一个视野。若是视图大于场景时,场景在中间部分显示[若是不设置视图的Alignment属性];若是视图小于场景,则只能看到场景的一部分,可是会自动提供卷滚条在整个场景中移动,同时也能够直接用鼠标拖动边框改变widget的大小code

二、实例:新建一个QT GUI程序,选择基类Widget,取消建立界面。修改main.cppblog

2.一、实例1:get

#include "widget.h"
#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene scene;
    scene.addText("I love Qt programming", QFont("Times", 22, QFont::Bold));

    QGraphicsView view(&scene);
    view.show();

    return a.exec();
}

分析:场景大小=视图大小:中间彻底显示[上下居中]io

#include "widget.h"
#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene scene;
    scene.addText("I love Qt programming", QFont("Times", 22, QFont::Bold));

    QGraphicsView view(&scene);
    view.setAlignment(Qt::AlignLeft | Qt::AlignTop);  //
    view.show();

    return a.exec();
}

分析:场景大小=视图大小:设置左上对齐显示class

#include "widget.h"
#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene scene;
    scene.addText("I love Qt programming", QFont("Times", 22, QFont::Bold));

    QGraphicsView view(&scene);
    view.setAlignment(Qt::AlignLeft | Qt::AlignTop);  //
    view.resize(20, 80);
    view.show();

    return a.exec();
}

分析:场景大小大于视图大小:只能看到一部分场景,可是会自动提供滚条用来转换视图gc

相关文章
相关标签/搜索