[PySide] custom painted content in delegate disappears when cell is selected
Frank Rueter | OHUfx
frank at ohufx.com
Sat May 5 05:27:51 CEST 2018
Hi all,
I am drawing some rectangles into my cell via a delegate's paint event
like so:
When I click one in the cells, the rectangles disappear, sometimes with
a lag. Sometimes they reappear when I click another cell.
The text drawn by the default paint event behaves fine, so I am clearly
missing something (probably obvious).
Below is my test code.
Any ideas? I'm sure I have a slap-on-the-forehead moment coming up...
Cheers,
frank
from PySide2 import QtWidgets
from PySide2 import QtCore
class VersionTableModel(QtCore.QAbstractTableModel):
def __init__(self, parent=None):
super(VersionTableModel, self).__init__(parent)
self.customData = [range(6)] * 4
def rowCount(self, index=None):
return 4
def columnCount(self, index=None):
return 6
def data(self, index, role):
if role == QtCore.Qt.DisplayRole:
try:
return
"{}".format(self.customData[index.row()][index.column()] )
except TypeError:
return None
class VersionItemDelegate(QtWidgets.QStyledItemDelegate):
def paint(self, painter, option, index):
super(self.__class__, self).paint(painter, option, index)
# paint custom icon
mv_rect1 = QtCore.QRect(0,0,18,10)
mv_rect1.moveTopRight(option.rect.bottomLeft() +
QtCore.QPoint(-18, -22))
mv_rect2 = mv_rect1.translated(3, 3)
mv_rect3 = mv_rect2.translated(3, 3)
painter.setPen(QtCore.Qt.white)
painter.setBrush(QtCore.Qt.red)
for r in (mv_rect1, mv_rect2, mv_rect3):
painter.drawRect(r)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication([])
tableView = QtWidgets.QTableView()
tableView.setModel(VersionTableModel())
tableView.setItemDelegate(VersionItemDelegate())
tableView.show()
sys.exit(app.exec_())
--
ohufxLogo 50x50 <http://www.ohufx.com>
*vfx compositing <http://ohufx.com/compositing.html> | *workflow
customisation and consulting <http://ohufx.com/customising.html>* *
*<http://ohufx.com/compositing.html>*
<http://www.nukepedia.com/nubridge>
Your gateway to over 1,000 free tools... right inside of Nuke
<http://www.nukepedia.com/nubridge>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20180505/abbabf02/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: idbogdmibdhpjiel.png
Type: image/png
Size: 21472 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20180505/abbabf02/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mihocedglmdjhbmg.png
Type: image/png
Size: 21255 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20180505/abbabf02/attachment-0001.png>
More information about the PySide
mailing list