Hi,

On Fri, May 10, 2013 at 10:06 PM, Michael Jackson <imikejack...@gmail.com>wrote:

> I am trying to add a "right click" or context menu to a QTreeWidget where
> the menu that gets popped up has menus that are specific to the item being
> clicked on. So far all my attempts have failed.
>
> I have tried to add my higher level QWidget class (The parent of the
> QTreeWidget) as an Event Filter for the QTreeWidget but I am not receiving
> the mouse clicked events. I tried adding the QAction to the QTreeWidgetItem
> directly by getting the QWidget from the QTreeWidgetItem while it is being
> constructed but at that point in the code the QTreeWidgetItem does not have
> a QWidget yet so that does not work.
>
> I am hoping it is something simple that I am just missing. Any help would
> be greatly appreciated.
>

Your three options are:

a) override contextMenuEvent in the QTreeWidget and map the x/y position to
an item using QTreeWidget::itemAt() (make sure to keep the default context
menu policy on the QTreeWidget

b) add QAction's to the QTreeWidget and set the contextMenuPolicy to
Qt::ActionsContextMenu, then fetch the list of selected items from the
TreeWidget in the actions triggered-slots using QTreeWidget::selectedItems

c) set the contextMenuPolicy to Qt::CustomContextMenu and connect yourself
to the 'customContextMenuRequested' signal, then again map from the given
point to the item using QTreeWidget::itemAt()

Andreas
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to