[Interest] QTreeView and context menu

Clément Geiger clement.geiger at gmail.com
Thu Feb 27 14:57:05 CET 2014

Hello Graham,

You can use the contextMenuPolicy Qt::CustomContextMenu. In that case, when
your QTreeView receives a right-click, it sends a signal
contextMenuRequested(QPoint) that you can connect to a slot. In that slot,
you are able to know which item has been clicked through
QTreeView::indexAt(QPoint). You can then compose your context menu (use
QMenu) as needed, and show it with QMenu::exec().

If you already subclassed QTreeView for a reason or another, there is
another way: leave the contextMenuPolicy as is and reimplement the
contextMenuEvent method. From there on it's the same as with the 1st method
(retrieve clicked index, compose menu and execute it).



2014-02-27 9:09 GMT+01:00 Graham Labdon <Graham.Labdon at avalonsciences.com>:

> Hi
> I have developed a class derived from QAbstractItemModel and am using it
> to display data in a QTreeView.
> I want to display a context menu when the user right clicks on an item in
> the tree. The contents of this menu are dependent on which item in the tree
> has bee clicked and the result of the click will result in an additional
> row being inserted into the model.
> I would be grateful of some guidance of how to achieve this.
> Thanks
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140227/8c5a70a0/attachment.html>

More information about the Interest mailing list