cambiare colore di sfondo della cella in qt
-
25-09-2019 - |
Domanda
Sono nuovo di PyQt, e sto ancora affrontando alcuni problemi newbie: D
Ho un QTableWidget che è oggetto delegato su un controllo QChoice (spero detto che a destra)
ho bisogno di avere lo sfondo delle celle cambiamenti di colore ogni volta che un cambiamento all'utente la selezione di controllo scelta
brevemente: come cambiare un colore di sfondo della cella in un widget tavolo ??
io uso PyQt4 e Python 2.6
Grazie in anticipo
Soluzione
Usa
QTableWidgetItem QTableWidget.item(row, column)
e
QTableWidgetItem setData(role, data)
con
Qt.BackgroundRole
come segue:
table.item(0, 0).setData(Qt.BackgroundRole, color).
E leggere il meccanismo ruoli utilizzato in Qt Model / View.
Altri suggerimenti
Ho usato qualcosa di simile:
brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
item.setBackground(brush)
Dove articolo non è oggetto QTableWidgetItem
se si utilizza QTableView utilizzare questo:
model.setData(model.index(0, 0), QVariant(QBrush(Qt::red)), Qt::BackgroundRole);
Ecco alcune utili linee di codice. Ci scusiamo per la ridondanza, sto cercando di guadagnare una certa reputazione.
QStandardItemModel* model = new QStandardItemModel(numRows, numColumns);
QStringList headers;
headers.append("Date");
model->setHorizontalHeaderLabels(headers);
QStandardItem* item = new QStandardItem(text);
item->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
item->setData(QVariant(QBrush(Qt::green)), Qt::BackgroundRole);
model->setItem(row, column, item);
o più semplicemente:
item->setBackground(Qt::green);
Ehi, è possibile impostare il metodo delegato per il widget tavolo. nel caso in vernice del delegato di gestire il colore che cambia tecnica .. dare un'occhiata a questo esempio , qui hanno colore selezione fatta su misura . stesso modo di gestire la cella di oggetto pittura