Вопрос

Я новичок в Pyqt, и я все еще сталкиваюсь с новичками: D
У меня есть qtablewidget, который является элементом, делегированным на контроле QChoice (надеюсь, что я сказал это правильно), мне нужно иметь изменения цвета фона клеток, когда пользователь меняет выбор выбора выбора
Кратко: как изменить цвет фона клеток в настольный виджет ??
Я использую PYQT4 и Python 2.6
спасибо заранее

Это было полезно?

Решение

Использовать

QTableWidgetItem QTableWidget.item(row, column)

а также

QTableWidgetItem setData(role, data)

с участием

Qt.BackgroundRole

следующим образом:

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

И прочитайте о механизме ролей, используемым в модели Qt / View.

Другие советы

Я использовал что-то вроде этого:

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

Где товар является объектом QtableWidgetEtem

Если вы используете QtableView, используйте это:

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

Вот несколько полезных линий кода. Извините за избыточность, я пытаюсь получить некоторую репутацию.

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

или просто:

item->setBackground(Qt::green);

Эй, вы установили метод делегата для виджета таблицы. в событии краски делегата вы обрабатываете технику изменений цвета .. посмотрите на это примерЗдесь они сделали пользовательский цвет выбора. так же, как вы обрабатываете элемент ячейки

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top