Qt:二维绘图类QGraphicsScene与QGraphicsView的关系
1、Scene是一个场景,View是一个视野。如果视图大于场景时,场景在中间部分显示[如果不设置视图的Alignment属性];如果视图小于场景,则只能看到场景的一部分,但是会自动提供卷滚条在整个场景中移动,同时也可以直接用鼠标拖动边框改变widget的大小
2、实例:新建一个QT GUI程序,选择基类Widget,取消创建界面。修改main.cpp
2.1、实例1:
#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();
}
分析:场景大小=视图大小:中间完全显示[上下居中]
#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();
}
分析:场景大小=视图大小:设置左上对齐显示
#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();
}
分析:场景大小大于视图大小:只能看到一部分场景,但是会自动提供滚条用来转换视图
还没有评论,来说两句吧...