brilliant, just adding actions to the widget itself and using
self.setContextMenuPolicy(Qt.ActionsContextMenu) works nicely.
I was way over complicating this task.
Thank you!!
On 28/08/12 9:41 PM, Frank Rueter | OHUfx wrote:
cool, thanks Tibold. That sounds like the right lead.
I will investigate...
On 28/08/12 9:37 PM, Tibold Kandrai wrote:
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 <[email protected] <mailto:[email protected]>>
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
[email protected] <mailto:[email protected]>
http://lists.qt-project.org/mailman/listinfo/pyside
--
Kandrai Tibold
_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside
_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside