[PySide] right clicking on QTableView to get selected rows
Tibold Kandrai
kandraitibold at gmail.com
Tue Aug 28 11:37:56 CEST 2012
Hi,
There are multiple ways to deal with the context menus. You don't
necessarily need to use the mousePressEvent.
I would use or the customContextMenuRequested signal or adding actions to
the view. Note you also need to set the contextMenuPolicy to
ActionsContextMenu or CustomContextMenu depending on which you use.
References:
-
http://doc.qt.nokia.com/4.7-snapshot/qwidget.html#customContextMenuRequested
-
http://doc.qt.nokia.com/4.7-snapshot/qwidget.html#contextMenuPolicy-prop
- http://doc.qt.nokia.com/4.7-snapshot/qwidget.html#addAction
I am not sure though how the selection works exactly with the context menu.
But in the customContextMenuRequested you can get the right clicked row's
index easily like this:
model_index = self.indexAt(point)
Hope this helps,
Tibold
2012/8/28 Frank Rueter | OHUfx <frank at ohufx.com>
> Hi everybody,
>
> I'm trying to implement a simple right click menu for a QTableView to
> work with the selected rows. The basics seem to work nicely but it seems
> like the selectionModel() gets updated AFTER the mousePressEvent
> registered, meaning if the right selection that happens on right lcick
> is not yet included in the selecetdRows() return value.
> How do I best ensure that whatever row is right clicked is included in
> the selectionModel().selectedRows(0)?
> Here is my code:
>
>
> class ToolsView(QTableView):
> def __init__(self, parent=None):
> super(ToolsView, self).__init__(parent)
> self.setSortingEnabled(True)
> self.setEditTriggers(QAbstractItemView.NoEditTriggers)
> self.horizontalHeader().setStretchLastSection(True)
> self.setSelectionBehavior(QAbstractItemView.SelectRows)
>
> def mousePressEvent(self, event):
> mouseBtn = event.button()
> if mouseBtn == Qt.MouseButton.RightButton:
> print self.selectionModel().selectedRows(0)
> super(InstalledToolsView, self).mousePressEvent(event)
>
>
> Cheers,
> frank
> _______________________________________________
> PySide mailing list
> PySide at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/pyside
>
--
Kandrai Tibold
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20120828/8bba5048/attachment.html>
More information about the PySide
mailing list