[PyQt] How to cast QStyleOption objects in PyQt4?

Jugdish jugdizh at gmail.com
Tue Mar 2 17:01:26 GMT 2010


How do I convert a QStyleOptionViewItem into a QStyleOptionViewItemV4? Qt
has the qstyleoption_cast() method, but no such method exists in PyQt4.

I have my own subclass of QStyledItemDelegate and have overridden the
initStyleOption() method so that I can provide my own foreground/background
colors, fonts, etc. The problem I'm running into is with the background
color -- I need to set the backgroundBrush attribute, which is only
available on QStyleOptionViewItemV4. So I need to somehow cast the
QStyleOptionViewItem object into a QStyleOptionViewItemV4 object...

from PyQt4 import *

class MyItemDelegate(QStyledItemDelegate):

    def initStyleOption(self, option, index):
        QStyledItemDelegate.initStyleOption(self, option, index)

        # set font family and color
        option.font.setFamily("Courier")
        option.palette.setBrush(QPalette.Text, QtCore.Qt.red)

        # set background color
        # this doesn't work:
        option.backgroundBrush = QBrush(QtCore.Qt.black)
        # neither does this:
        option = QStyleOptionViewItemV4(option)
        option.backgroundBrush = QBrush(QtCore.Qt.black)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20100302/373945cc/attachment.html>


More information about the PyQt mailing list