Any PyQt developers here?

Thomas Passin list1 at tompassin.net
Tue Oct 25 13:45:04 EDT 2022


On 10/25/2022 1:03 PM, DFS wrote:
> Having problems with removeRow() on a QTableView object.

removeRow() isn't listed as being a method of a QTableView, not even an 
inherited method, so how are you calling removeRow() on it? (See 
https://doc.qt.io/qt-6/qtableview-members.html)

> After calling removeRow(), the screen isn't updating.  It's as if the 
> model is read-only, but it's a QSqlTableModel() model, which is not 
> read-only.
> 
> The underlying SQL is straightforward (one table) and all columns are 
> editable.
> 
> None of the editStrategies are working either.
> 
> I tried everything I can think of, including changes to the 
> EditTriggers, but no luck.  HELP!
> 
> FWIW, the same removeRow() code works fine with a QTableWidget.
> 
> -------------------------------------------------------------------
> object creation and data loading all works fine
> -------------------------------------------------------------------
> #open db connection
> qdb = QSqlDatabase.addDatabase("QSQLITE")
> qdb.setDatabaseName(dbname)
> qdb.open()
> 
> #prepare query and execute to return data
> query = QSqlQuery()
> query.prepare(cSQL)
> query.exec_()
> 
> #set model type and query
> model = QSqlTableModel()
> model.setQuery(query)
> 
> #assign model to QTableView object
> view = frm.tblPostsView
> view.setModel(model)
> 
> #get all data
> while(model.canFetchMore()): model.fetchMore()
> datarows = model.rowCount()
> 
> 
> 
> -------------------------------------------------------------------
> iterate selected rows also works fine
> SelectionMode is Extended.
> identical code works for a QTableWidget
> -------------------------------------------------------------------
> selected = tbl.selectionModel().selectedRows()
> #reverse sort the selected items to delete from bottom up
> selected = sorted(selected,reverse=True)
> for i,val in enumerate(selected):
>      tbl.model().removeRow(selected[i].row())
> 



More information about the Python-list mailing list