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

相關文章
相關標籤/搜索