So I made some progress but am now having the problem that a right click on a persistent editor (combo box) will lose the current table selection. I tried reimplementing the mousePressEvent on both the editor widget and the actual table widget to stop that behaviour but to no avail. Here is a simplified version of the code that shows the problem: https://pastebin.com/M9RSTFSJ [image: image.png] What I am trying to achieve is that a right click on the editor ithe "Type" column will keep the current row selection, so that I can then pop up the editor and apply the new value to all selected rows.
What am I missing? Cheers, frank On Fri, Aug 26, 2022 at 7:58 AM Frank Rueter <fr...@ohufx.com> wrote: > Thanks David, > I was thinking about a right click option as a Plan B. Will do that. > I will look into using a delegate as well. I had forgotten I could use > those with the TableWidget as well. > > Thanks! > Frank > > > On Fri, Aug 26, 2022 at 4:52 AM David Ching <d...@dcsoft.com> wrote: > >> > Date: Thu, 25 Aug 2022 20:36:01 +1200 >> > From: Frank Rueter <fr...@ohufx.com> >> > Subject: [PySide] editing selected cells in QTabelWidget >> > Hi all, >> > >> > I have a simple table which will never hold much data, so I opted for >> QTabelWidget rather than QTabelView. >> > Two columns have combo boxes set as cell widgets; all other cells house >> straight up strings. >> > >> > I have set the selection behaviour to QAbstractItemView.SelectRows and >> am >> now trying to figure out how to enable >> > editing of selected cells, so that the user can select multiple rows, >> then double click a cell in that selection and edit it, >> > which will cause all other cells in the same column within the >> selection >> to receive the new value. >> > >> > I have hit a couple of issues: >> > >> > 1. By default the selection is reset when I double click in a cell, so >> I >> assume I will have to override QTableWidget.mousePressEvent() to >> prevent >> that somehow. Any suggestions on how to best manage that best? I am not >> sure what I need to re-implement to just prevent the selection being >> reset. >> >> In general, double clicking on a multiple selection doesn't work since as >> you note, the first click (of the double click) selects the single item >> that >> was clicked and de-selects the other items. To edit multiple selected >> items >> (my app runs on Windows) I select them and then start editing by pressing >> F2 >> (which Excel uses similarly) or a toolbar button, or right-clicking one of >> the selected items which opens a context menu with an Edit item. >> >> >> > 2. the cell widgets do not modify the actual cell item's value. Do I >> > need to manually connect the widgets to a slot that will do that or >> is >> > there a better way to do that? >> >> I had a similar task: >> >> MyTableWidget::MyTableWidget(QWidget *parent) : QTableWidget(parent) >> { >> m_delegate = new MyTableItemDelegate(); // MyTableItemDelegate is >> derived from QStyledItemDelegate >> setItemDelegate(m_delegate); >> } >> >> MyTableItemDelegate overrides createEditor(), setEditorData(), >> setModelData(), updateEditorGeometry(). >> >> Apologies, this code is in C++. It has been years since I developed this >> code, so don't know more details off the top of my head. >> >> Hope this helps, >> David >> >> >> >> _______________________________________________ >> PySide mailing list >> PySide@qt-project.org >> https://lists.qt-project.org/listinfo/pyside >> >
_______________________________________________ PySide mailing list PySide@qt-project.org https://lists.qt-project.org/listinfo/pyside