Mit QLineEdit Palette zuweisen wir QGradient als Hintergrundfarbe zuordnen:Wie QLinearGradient als QTableView Elemente Hintergrundfarbe
line = QtGui.QLineEdit()
palette = line.palette()
QRectF = QtCore.QRectF(line.rect())
gradient = QtGui.QLinearGradient(QRectF.topLeft(), QRectF.topRight())
palette.setBrush(QtGui.QPalette.Base, QtGui.QBrush(gradient))
line.setPalette(palette)
line.show()
Während der Arbeit mit QTableView
und seine QAbstractTableModel
ich wieder ein solides QColor
von Modell data
Methode für jede BackgroundColorRole
Anfrage. Statt einer Volltonfarbe würde ich lieber einen Gradient zu TableView "Element" zuweisen. Wie wird ein Farbverlauf anstelle von Volltonfarbe zugewiesen?
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class Model(QtCore.QAbstractTableModel):
def __init__(self):
QtCore.QAbstractTableModel.__init__(self)
self.items = [[1, 'one', 'ONE'], [2, 'two', 'TWO'], [3, 'three', 'THREE']]
def rowCount(self, parent=QtCore.QModelIndex()):
return 3
def columnCount(self, parent=QtCore.QModelIndex()):
return 3
def data(self, index, role):
if not index.isValid(): return
if role in [QtCore.Qt.DisplayRole, QtCore.Qt.EditRole]:
return self.items[index.row()][index.column()]
if role == QtCore.Qt.ForegroundRole:
return QtGui.QColor("white")
if role == QtCore.Qt.BackgroundColorRole:
return QtGui.QColor("gray")
def onClick(index):
print 'clicked index: %s'%index
tableModel=Model()
tableView=QtGui.QTableView()
tableView.setModel(tableModel)
tableView.clicked.connect(onClick)
tableView.show()
app.exec_()