欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt图形视图框架(四) Item之间的关系

程序员文章站 2024-03-26 09:53:05
...

Item之间的关系


1 创建一个以widget作为基类的项目,为了方便删除widget头文件以及其源文件,当然可以不删除
2 因为要用到c++11特性,所以在pro文件中添加语句:
CONFIG += c++11 
3 修改main, 观察效果:
#include <QtWidgets>
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene scene(0, 0, 1000, 1000);
    QGraphicsView view(&scene);
    view.setSceneRect(0, 0, 1000, 1000);
    //Z序,效果不是很明显
    auto bkrect = new QGraphicsRectItem(0, 0, 200, 200);
    bkrect->setFlag(QGraphicsItem::ItemIsMovable, true);
    bkrect->setFlag(QGraphicsItem::ItemIsSelectable, true);
    //bkrect->setZValue(0);
    bkrect->setBrush(Qt::gray);
    scene.addItem(bkrect);

    auto text = new QGraphicsSimpleTextItem("Text");
    text->setFlag(QGraphicsItem::ItemIsMovable, true);
    text->setFlag(QGraphicsItem::ItemIsSelectable, true);
    //text->setZValue(1);
    scene.addItem(text);

    //parent
    //text->setParentItem(bkrect);

    //分组
    /*QList<QGraphicsItem *> items;
    items.append(bkrect);
    items.append(text);
    auto group = scene.createItemGroup(items);
    group->setFlag(QGraphicsItem::ItemIsMovable, true);
    group->setFlag(QGraphicsItem::ItemIsSelectable, true);*/

    view.show();

    return a.exec();
}