Qt之二維繪圖:QGraphicsScene與QGraphicsView的關係
阿新 • • 發佈:2021-01-31
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(); }
分析:場景大小大於檢視大小:只能看到一部分場景,但是會自動提供滾條用來轉換檢視