Not a 100% sure, but I think this is due to the QMaemo5 style implementation
you are not able to do it.
Think Ive faced the issue before.
Is there a chance you could try with a delegate for your columns, thats worked
for me.
Implementing the paint().
P.S. i dont use python, I use C++, hence I didnt paste the example.
cheers,
Ram
- Original Message -
From: SC
Sent: 04/29/10 11:16 AM
To: maemo-developers@maemo.org
Subject: PyQt ForegroundRole
Hello, I've been struggling getting ForegroundRole
http://doc.trolltech.com/4.6/qt.html to work properly so I can change the text
color of certain cells in QTableView.
I took an example from http://www.daniweb.com/forums/thread191210-7.html
http://www.daniweb.com/forums/thread191210-7.html and added the following in
the data(...) method:
elif role == Qt.ForegroundRole:
return QBrush(QColor(255, 0, 0))
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.
Is there any Maemo-specific calls that I am missing here?
# http://www.daniweb.com/forums/thread191210-7.html
http://www.daniweb.com/forums/thread191210-7.html
import operator
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MyWindow(QWidget):
def __init__(self, data_list, header, *args):
QWidget.__init__(self, *args)
# setGeometry(x_pos, y_pos, width, height)
self.setGeometry(300, 200, 420, 250)
self.setWindowTitle(Exploring PyQT's QTableView)
table_model = MyTableModel(self, data_list, header)
table_view = QTableView()
table_view.setModel(table_model)
# enable sorting
table_view.setSortingEnabled(True)
layout = QVBoxLayout(self)
layout.addWidget(table_view)
self.setLayout(layout)
class MyTableModel(QAbstractTableModel):
def __init__(self, parent, mylist, header, *args):
QAbstractTableModel.__init__(self, parent, *args)
self.mylist = mylist
self.header = header
def rowCount(self, parent):
return len(self.mylist)
def columnCount(self, parent):
return len(self.mylist[0])
def data(self, index, role):
if not index.isValid():
return QVariant()
# -
# Works on Windows PC but not on N900
# -
elif role == Qt.ForegroundRole:
return QBrush(QColor(255, 0, 0))
elif role != Qt.DisplayRole:
return QVariant()
return QVariant(self.mylist[index.row()][index.column()])
def headerData(self, col, orientation, role):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
return QVariant(self.header[col])
return QVariant()
def sort(self, col, order):
sort table by given column number col
self.emit(SIGNAL(layoutAboutToBeChanged()))
self.mylist = sorted(self.mylist,
key=operator.itemgetter(col))
if order == Qt.DescendingOrder:
self.mylist.reverse()
self.emit(SIGNAL(layoutChanged()))
header = ['First Name', 'Last Name', 'Age', 'Weight']
# a list of (name, age, weight) tuples
data_list = [
('Heidi', 'Kalumpa', '36', '127'),
('Frank', 'Maruco', '27', '234'),
('Larry', 'Pestraus', '19', '315'),
('Serge', 'Romanowski', '59', '147'),
('Carolus', 'Arm', '94', '102'),
('Michel', 'Sargnagel', '21', '175')
]
app = QApplication([])
win = MyWindow(data_list, header)
win.show()
app.exec_()
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers