el cambio de color de fondo en células QT
-
25-09-2019 - |
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
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