Qt图形视图框架(二) 常见的QtGraphicsItem

时间:2023-02-01 18:33:51

Item之间的关系


1 创建一个以widget作为基类的项目,为了方便删除widget头文件以及其源文件,当然可以不删除
2 因为要用到c++11特性,所以在pro文件中添加语句:
[cpp]  view plain  copy
  1. CONFIG += c++11   
3 修改main, 观察效果:
[cpp]  view plain  copy
  1. #include <QtWidgets>  
  2. #include <QApplication>  
  3.   
  4. int main(int argc, char *argv[])  
  5. {  
  6.     QApplication a(argc, argv);  
  7.     QGraphicsScene scene(0, 0, 1000, 1000);  
  8.     QGraphicsView view(&scene);  
  9.     view.setSceneRect(0, 0, 1000, 1000);  
  10.     //Z序,效果不是很明显  
  11.     auto bkrect = new QGraphicsRectItem(0, 0, 200, 200);  
  12.     bkrect->setFlag(QGraphicsItem::ItemIsMovable, true);  
  13.     bkrect->setFlag(QGraphicsItem::ItemIsSelectable, true);  
  14.     //bkrect->setZValue(0);  
  15.     bkrect->setBrush(Qt::gray);  
  16.     scene.addItem(bkrect);  
  17.   
  18.     auto text = new QGraphicsSimpleTextItem("Text");  
  19.     text->setFlag(QGraphicsItem::ItemIsMovable, true);  
  20.     text->setFlag(QGraphicsItem::ItemIsSelectable, true);  
  21.     //text->setZValue(1);  
  22.     scene.addItem(text);  
  23.   
  24.     //parent  
  25.     //text->setParentItem(bkrect);  
  26.   
  27.     //分组  
  28.     /*QList<QGraphicsItem *> items; 
  29.     items.append(bkrect); 
  30.     items.append(text); 
  31.     auto group = scene.createItemGroup(items); 
  32.     group->setFlag(QGraphicsItem::ItemIsMovable, true); 
  33.     group->setFlag(QGraphicsItem::ItemIsSelectable, true);*/  
  34.   
  35.     view.show();  
  36.   
  37.     return a.exec();  
  38. }  




http://blog.csdn.net/hao_zong_yin/article/details/73801465