<div class="gmail_quote">Hello, I&#39;ve been struggling getting <a href="http://doc.trolltech.com/4.6/qt.html" target="_blank">ForegroundRole</a> to work properly so I can change the text color of certain cells in QTableView.<div>
I took an example from <a href="http://www.daniweb.com/forums/thread191210-7.html" target="_blank">http://www.daniweb.com/forums/thread191210-7.html</a> and added the following in the data(...) method:</div>
<div><br></div><div><div>        elif role == Qt.ForegroundRole:</div><div>            return QBrush(QColor(255, 0, 0))</div><div><br></div><div>When I run it on my Windows PC, the font color is set to red for all the cells but does not seem to have an effect on my N900.</div>

<div><br></div><div>Is there any Maemo-specific calls that I am missing here?</div><div><br></div><div><br></div></div><div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div>
<div><font face="&#39;courier new&#39;, monospace"># <a href="http://www.daniweb.com/forums/thread191210-7.html" target="_blank">http://www.daniweb.com/forums/thread191210-7.html</a></font></div><div><font face="&#39;courier new&#39;, monospace"><br>

</font></div><div><font face="&#39;courier new&#39;, monospace">import operator</font></div><div><font face="&#39;courier new&#39;, monospace">from PyQt4.QtCore import *</font></div>
<div><font face="&#39;courier new&#39;, monospace">from PyQt4.QtGui import *</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">class MyWindow(QWidget):</font></div>

<div><font face="&#39;courier new&#39;, monospace">    def __init__(self, data_list, header, *args):</font></div><div><font face="&#39;courier new&#39;, monospace">        QWidget.__init__(self, *args)</font></div>
<div><font face="&#39;courier new&#39;, monospace">        # setGeometry(x_pos, y_pos, width, height)</font></div><div><font face="&#39;courier new&#39;, monospace">        self.setGeometry(300, 200, 420, 250)</font></div>

<div><font face="&#39;courier new&#39;, monospace">        self.setWindowTitle(&quot;Exploring PyQT&#39;s QTableView&quot;)</font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font face="&#39;courier new&#39;, monospace">        table_model = MyTableModel(self, data_list, header)</font></div><div><font face="&#39;courier new&#39;, monospace">        table_view = QTableView()</font></div>

<div><font face="&#39;courier new&#39;, monospace">        table_view.setModel(table_model)</font></div><div><font face="&#39;courier new&#39;, monospace">        # enable sorting</font></div>
<div><font face="&#39;courier new&#39;, monospace">        table_view.setSortingEnabled(True)</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div>
<div><font face="&#39;courier new&#39;, monospace">        layout = QVBoxLayout(self)</font></div><div><font face="&#39;courier new&#39;, monospace">        layout.addWidget(table_view)</font></div>
<div><font face="&#39;courier new&#39;, monospace">        self.setLayout(layout)</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font face="&#39;courier new&#39;, monospace">class MyTableModel(QAbstractTableModel):</font></div><div><font face="&#39;courier new&#39;, monospace">    def __init__(self, parent, mylist, header, *args):</font></div>

<div><font face="&#39;courier new&#39;, monospace">        QAbstractTableModel.__init__(self, parent, *args)</font></div><div><font face="&#39;courier new&#39;, monospace">        self.mylist = mylist</font></div>
<div><font face="&#39;courier new&#39;, monospace">        self.header = header</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">    def rowCount(self, parent):</font></div>

<div><font face="&#39;courier new&#39;, monospace">        return len(self.mylist)</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">    def columnCount(self, parent):</font></div>

<div><font face="&#39;courier new&#39;, monospace">        return len(self.mylist[0])</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div>
<font face="&#39;courier new&#39;, monospace">    def data(self, index, role):</font></div><div><font face="&#39;courier new&#39;, monospace">        if not index.isValid():</font></div>
<div><font face="&#39;courier new&#39;, monospace">            return QVariant()</font></div><div><font face="&#39;courier new&#39;, monospace">        # ---------------------------------------------</font></div>
<div><font face="&#39;courier new&#39;, monospace">        # Works on Windows PC but not on N900</font></div><div><font face="&#39;courier new&#39;, monospace">        # ---------------------------------------------</font></div>

<div><font face="&#39;courier new&#39;, monospace">        elif role == Qt.ForegroundRole:</font></div><div><font face="&#39;courier new&#39;, monospace">            return QBrush(QColor(255, 0, 0))</font></div>
<div><font face="&#39;courier new&#39;, monospace">        elif role != Qt.DisplayRole:</font></div><div><font face="&#39;courier new&#39;, monospace">            return QVariant()</font></div>
<div><font face="&#39;courier new&#39;, monospace">        return QVariant(self.mylist[index.row()][index.column()])</font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font face="&#39;courier new&#39;, monospace">    def headerData(self, col, orientation, role):</font></div><div><font face="&#39;courier new&#39;, monospace">        if orientation == Qt.Horizontal and role == Qt.DisplayRole:</font></div>

<div><font face="&#39;courier new&#39;, monospace">            return QVariant(self.header[col])</font></div><div><font face="&#39;courier new&#39;, monospace">        return QVariant()</font></div>
<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">    def sort(self, col, order):</font></div><div><font face="&#39;courier new&#39;, monospace">        &quot;&quot;&quot;sort table by given column number col&quot;&quot;&quot;</font></div>

<div><font face="&#39;courier new&#39;, monospace">        self.emit(SIGNAL(&quot;layoutAboutToBeChanged()&quot;))</font></div><div><font face="&#39;courier new&#39;, monospace">        self.mylist = sorted(self.mylist,</font></div>

<div><font face="&#39;courier new&#39;, monospace">            key=operator.itemgetter(col))</font></div><div><font face="&#39;courier new&#39;, monospace">        if order == Qt.DescendingOrder:</font></div>
<div><font face="&#39;courier new&#39;, monospace">            self.mylist.reverse()</font></div><div><font face="&#39;courier new&#39;, monospace">        self.emit(SIGNAL(&quot;layoutChanged()&quot;))</font></div>
<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">header = [&#39;First Name&#39;, &#39;Last Name&#39;, &#39;Age&#39;, &#39;Weight&#39;]</font></div>

<div><font face="&#39;courier new&#39;, monospace"># a list of (name, age, weight) tuples</font></div><div><font face="&#39;courier new&#39;, monospace">data_list = [</font></div>
<div><font face="&#39;courier new&#39;, monospace">(&#39;Heidi&#39;, &#39;Kalumpa&#39;, &#39;36&#39;, &#39;127&#39;),</font></div><div><font face="&#39;courier new&#39;, monospace">(&#39;Frank&#39;, &#39;Maruco&#39;, &#39;27&#39;, &#39;234&#39;),</font></div>

<div><font face="&#39;courier new&#39;, monospace">(&#39;Larry&#39;, &#39;Pestraus&#39;, &#39;19&#39;, &#39;315&#39;),</font></div><div><font face="&#39;courier new&#39;, monospace">(&#39;Serge&#39;, &#39;Romanowski&#39;, &#39;59&#39;, &#39;147&#39;),</font></div>

<div><font face="&#39;courier new&#39;, monospace">(&#39;Carolus&#39;, &#39;Arm&#39;, &#39;94&#39;, &#39;102&#39;),</font></div><div><font face="&#39;courier new&#39;, monospace">(&#39;Michel&#39;, &#39;Sargnagel&#39;, &#39;21&#39;, &#39;175&#39;)</font></div>

<div><font face="&#39;courier new&#39;, monospace">]</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">app = QApplication([])</font></div>
<div><font face="&#39;courier new&#39;, monospace">win = MyWindow(data_list, header)</font></div><div><font face="&#39;courier new&#39;, monospace">win.show()</font></div>
<div><font face="&#39;courier new&#39;, monospace">app.exec_()</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><br></div></div></div>
<br></div><br>