Important: Please read the Qt Code of Conduct -

Change QGraphicsTextItem edit trigger from single click to double click

  • I am working on a patch for the QtCharts module ( which main goal is making chart labels (QGrapcshiTextItems) editable.

    I can easily enable the editing of the QGraphicsTextItem with the QGraphicsTextItem::setTextInteractionFlags, but by default a single click will enable the edit mode.

    The reviewers asked me to change this behavior to double click.

    I have tried to ignore the event in the reimplemented mousePressEvent, but the single click still triggers the editing.

    Any other idea would be welcome!

  • Lifetime Qt Champion


    What about using mouseDoubleClickEvent ?

  • @SGaist

    Hi Sam,

    Thank you for your hint, but my first problem was preventing the edit trigger on single click.

    For the posterity I have ended up with the following solution:

    • Disable the textInteraction flags by default
    • Override the QGraphicsTextItem::sceneEvent with the following:
    bool ValueAxisLabel::sceneEvent(QEvent *event)
        if (event->type() == QEvent::GraphicsSceneMouseDoubleClick) {
            bool ret = QGraphicsTextItem::sceneEvent(event);
            // QGraphicsTextItem::sceneevent needs to be processed before
            // the focus
            return ret;
        return QGraphicsTextItem::sceneEvent(event);

    The textInteractionFlags should be disabled in the overridden focusOutEvent.