图形视图框架
学习过程参考 http://www.qter.org/portal.php?mod=view&aid=48
记一些觉得比较重要的点
~~~~~~~~
可以分成三部分
1. 图形 Item
2. 场景 Scene
3. 视图 View
Item 由Scene 管理,使用时需要
scene->addItem(item);
Scene 不能可视化,需要在View 上
view->setScene(scene);
下面代码是一个简单的小窗口里放小方形
int main(int argc, char* argv[]){
QApplication app(argc,argv);
QGraphicsScene *scene = new QGraphicsScene;// scene
QGraphicsRectItem *item = new QGraphicsRectItem(100,100,50,50);// item
scene->addItem(item);// add item to scene
QGraphicsView *view = new QGraphicsView;// view
view->setScene(scene);// set scene on view
view->show();// show view
return app.exec();
}
过程:
- 定义 item 、scene 、 view 。
- scene 上加入 item
- view 中设置为 scene
- 显示 view
--QGraphicsItem 图形项基类
支持功能:
- 鼠标的按下、移动、释放和双击事件,也支持鼠标悬停、滚轮和右键菜单事件。
- 键盘输入焦点和键盘事件。
- 拖放
- 利用QGraphicsItemGroup进行分组
- 碰撞检测
参考的实例中用了下面俩函数来画矩形
QRectF boundingRect() const;
void paint(QPaint