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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top