【问题标题】:Selecting multiple elements using QGraphicsItemGroup使用 QGraphicsItemGroup 选择多个元素
【发布时间】:2015-12-15 18:26:55
【问题描述】:

在 Qt 4.7.1 中,我尝试使用 QGraphicsItemGroup 选择多个元素。目标是在选择一个时选择组中的所有元素。

如果我单独创建对象,我会在构造函数中设置 ItemIsSelectable 标志并将它们添加到场景中,我可以毫无问题地(单独)选择它们。

.. 但是当我创建组时,将项目添加到其中,然后将组添加到场景中,我无法再选择我的项目。可能是什么问题?

这是我的代码:

#include "stdafx.h"

#include <QtCore/QtCore>
#include <QtGui/QtGui>

class CustomElipse : public QGraphicsEllipseItem
{
public:
    CustomElipse (const QRectF& rect) : QGraphicsEllipseItem(rect) {
        setFlag(QGraphicsItem::ItemIsSelectable);
    }
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QGraphicsScene scene;

    QGraphicsItemGroup * myGroup = new QGraphicsItemGroup();
    CustomElipse *elipse1 = new CustomElipse(QRectF(30, 30, 15, 25));
    CustomElipse *elipse2 = new CustomElipse(QRectF(70, 70, 25, 15));

    myGroup->addToGroup(elipse1); myGroup->addToGroup(elipse2);
    scene.addItem(myGroup);

    QGraphicsView view(&scene); view.show();

    return a.exec();
}

【问题讨论】:

    标签: c++ qt qgraphicsitem


    【解决方案1】:

    您还需要将QGraphicsItemGroup 设为可选:

    QGraphicsItemGroup * myGroup = new QGraphicsItemGroup();
    myGroup->setFlag(QGraphicsItem::ItemIsSelectable, true); // add this line
    ...
    

    这使您可以选择整个组。

    【讨论】:

    • 哦,我错过了!谢谢你马丁!
    猜你喜欢
    • 2020-05-24
    • 2014-01-07
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2021-10-22
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多