使用 QGraphicsItemGroup 选择多个元素
Selecting multiple elements using QGraphicsItemGroup
在 Qt 4.7.1 中,我正在尝试 select 使用 QGraphicsItemGroup 的多个元素。目标是 select 组中的所有元素 selected.
如果我单独创建对象,我在构造函数中设置 ItemIsSelectable 标志,然后将它们添加到场景中,我可以 select 它们(单独)没有问题。
.. 但是当我创建组,将项目添加到其中,然后将组添加到场景时,我无法再 select 我的项目。可能是什么问题?
这是我的代码:
#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();
}
您需要使 QGraphicsItemGroup
select能够:
QGraphicsItemGroup * myGroup = new QGraphicsItemGroup();
myGroup->setFlag(QGraphicsItem::ItemIsSelectable, true); // add this line
...
这让你 select 整个团队。
在 Qt 4.7.1 中,我正在尝试 select 使用 QGraphicsItemGroup 的多个元素。目标是 select 组中的所有元素 selected.
如果我单独创建对象,我在构造函数中设置 ItemIsSelectable 标志,然后将它们添加到场景中,我可以 select 它们(单独)没有问题。
.. 但是当我创建组,将项目添加到其中,然后将组添加到场景时,我无法再 select 我的项目。可能是什么问题?
这是我的代码:
#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();
}
您需要使 QGraphicsItemGroup
select能够:
QGraphicsItemGroup * myGroup = new QGraphicsItemGroup();
myGroup->setFlag(QGraphicsItem::ItemIsSelectable, true); // add this line
...
这让你 select 整个团队。