This looks like a useful tutorial -

https://doc.qt.io/qt-6/modelview.html

On 10/27/2022 3:47 PM, Thomas Passin wrote:
On 10/27/2022 11:15 AM, DFS wrote:
On 10/25/2022 1:45 PM, Thomas Passin wrote:
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)

Since you helped me on the last one, maybe you could try to answer a couple more [probably simple] roadblocks I'm hitting.


I just wanna set the font to bold/not-bold when clicking on a row in QTableView.



With a QTableWidget I do it like this:

font = QFont()
font.setBold(True) or False
QTableWidget.item(row,col).setFont(font)



But the QTableView has data/view 'models' attached to it and that syntax doesn't work:


Tried:
font = QFont()
font.setBold(True) or False
model = QTableView.model()
model.setFont(model.index(row,col), font)

Throws AttributeError: 'QSqlTableModel' object has no attribute 'setFont'


This doesn't throw an error, but doesn't show bold:
model.setData(model.index(tblRow, col), font, Qt.FontRole)


Any ideas?

You definitely need to be setting the font in an item.  I'm not sure but I think that your QFont() doesn't have any properties, so it doesn't do anything.  I found this bit in a page - it's in C++ instead of Python but that doesn't really make a difference except for the exact syntax to use -


https://forum.qt.io/topic/70016/qlistview-item-font-stylesheet-not-working/4

       QVariant v = ModelBaseClass::data(index,role);
       if( condition && role == Qt::FontRole )
       {
                QFont font = v.value<QFont>();
                     font.setBold( true );
                v = QVariant::fromValue<QFont>( font );
       }

IOW, you have to get the font from the item, then set it to bold, which you would do with setFont().  Then you set that new font on the item. Of course you would have to unset bold on it later. See

https://doc.qt.io/qt-6/qtablewidgetitem.html#font

Instead of "item", you might need to operate on "row".  I didn't look into that.  Since a row probably doesn't have just one font (since it can have more than one item), you'd still have to get the font from some item in the row.

You might also be able to make the item bold using CSS, but I'm not sure.

Thanks

Internet searches are your friend for questions like this.  I've never worked with a QTableView, so I had to start with some knowledge about some other parts of QT.  I found the first page searching for "qt set qtableview row font", and the second searching for "qtablewidgetitem".


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to