qt - 选择 QGraphicsItem 时调用什么方法

标签 qt qgraphicsitem

可能是一个棘手的问题,但我找不到答案。

我需要知道何时选择了 QGraphicsItem。必须有一个被调用的方法。

我知道 QGraphicsItem::itemChange()但它被调用得太频繁了。

有没有更好的方法?

谢谢

编辑:有了这个

if(change == ItemSelectedChange && scene()){
    cout << "haha " << i++ << endl;
}

每次选择更改我都会接到两个电话。

最佳答案

你应该带value在 QGraphicsItem::itemChange 方法中考虑。你想要的可能是这样的:

QVariant YourItem::itemChange(GraphicsItemChange change, const QVariant &value)
{
    if (change == QGraphicsItem::ItemSelectedChange)
    {
        if (value == true)
        {
            // do stuff if selected
        }
        else
        {
            // do stuff if not selected
        }
    }

    return QGraphicsItem::itemChange(change, value);
}

关于qt - 选择 QGraphicsItem 时调用什么方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287158/

相关文章:

QT:qobject_cast 问题

c++ - 来自两个抽象类的多重继承(Qt)

c++ - 使用 QGraphicsItemGroup 选择多个元素

Qt: qgraphicsitem拖放

c++ - 是否可以让两个 C++ 程序访问同一内存位置

c++ - 为什么会发生 QEvent::ShortcutOverride 事件?

c++ - Qt 项目的通用 Makefile

c++ - QNetworkAccessManager上传到本地FTP服务器

c++ - 获取鼠标在 QLabel 中单击的位置

c++ - 当 QToolTip 应该跟随 QGraphicsItem 上的鼠标时出现奇怪的行为