Pregunta

soy nuevo pyqt, y todavía estoy frente a algunos problemas de novato: D
Tengo un QTableWidget que es objeto delegado en un control QChoice (espero que me dijo que la derecha) i necesita tener los cambios de color de fondo de celda cada vez que un usuario cambie la selección de control de elección
En la práctica: para cambiar un color de fondo de la celda en un widget de tabla ??
i uso PyQt4 y Python 2.6
Gracias de antemano

¿Fue útil?

Solución

Uso

QTableWidgetItem QTableWidget.item(row, column)

y

QTableWidgetItem setData(role, data)

con

Qt.BackgroundRole

como sigue:

table.item(0, 0).setData(Qt.BackgroundRole, color).

y leer sobre el mecanismo utilizado Roles en Qt Modelo / Vista.

Otros consejos

he usado algo como esto:

brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
item.setBackground(brush)

¿Dónde artículo es objeto QTableWidgetItem

si utiliza QTableView utilizar esto:

model.setData(model.index(0, 0), QVariant(QBrush(Qt::red)), Qt::BackgroundRole);

Aquí hay algunas líneas útiles de código. Lo siento por la redundancia, que estoy tratando de ganar un poco de reputación.

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 simplemente:

item->setBackground(Qt::green);

Hola, se establece el método de delegado para el widget mesa. en el caso de la pintura del delegado manejar la técnica de cambio de color .. echar un vistazo a este ejemplo , aquí tienen color de la selección de encargo hechas . misma forma en que maneja la célula artículo Pintura

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top