Frage

Ich bin neu in pyqt, und ich bin nach wie vor einige Probleme Neuling: D
Ich habe eine QTableWidget, die Artikel auf einer QChoice Kontrolle delegiert ist (hoffe ich sagte es rechts) Ich brauche die Zellhintergrundfarbe ändert haben, wenn ein Benutzer Änderung der Wahl Steuer Auswahl
kurz: wie eine Zelle Hintergrundfarbe in einer Tabelle Widget ändern ??
Ich benutze PyQt4 und Python 2.6
Danke im Voraus

War es hilfreich?

Lösung

Mit

QTableWidgetItem QTableWidget.item(row, column)

und

QTableWidgetItem setData(role, data)

mit

Qt.BackgroundRole

wie folgt:

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

Und lesen Sie über den Mechanismus Rollen verwendet in Qt Model / View.

Andere Tipps

habe ich so etwas wie diese:

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

Wo Artikel ist QTableWidgetItem Objekt

Wenn Sie QTableView verwenden verwenden diese:

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

Hier sind einige nützliche Codezeilen. Sorry für Redundanz, Ich versuche, einigen Ruf zu gewinnen.

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);

oder einfach:

item->setBackground(Qt::green);

Hey, stellen Sie die delegierte Methode für die Tabelle Widget. in dem Paint-Ereignisse des Delegaten behandeln Sie die Farbe wechselnde Technik .. haben einen Blick auf diese Beispiel , hier haben sie getan individuelle Auswahl Farbe . gleiche Art und Weise Sie das Element Zelle behandeln Malerei

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top