Установить цвет текста QTableWidgetItem (Qt)

#qt #pyqt #pyqt5

#qt #pyqt #pyqt5

Вопрос:

В QTableWidgetItem есть метод для установки фонового цвета ячейки в таблице, но нет метода для установки цвета текста этой ячейки.

Как мне изменить цвет текста произвольной ячейки в a QTableWidget ?

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

 QTableWidget::item {
    color: red;
}
  

Но поскольку API находится на уровне QTableWidget (а не на уровне QTableWidgetItem), я считаю невозможным настроить таргетинг на отдельные ячейки.

Комментарии:

1. используйте QItemDelegate и изменяйте цвет ячейки по индексу модели

Ответ №1:

Вызывается метод setForeground() (не уверен, как я его пропустил). Не уверен, как это сделать только в CSS.

Код:

 item = QTableWidgetItem('text')
item.setForeground(QBrush(QColor(0, 255, 0)))
  

Комментарии:

1. Вы наконец нашли способ сделать это с помощью таблицы стилей (qss)? Я хочу оформить элемент / строку в соответствии с его содержимым.

Ответ №2:

Я знаю, что прошло некоторое время, но вы могли бы попробовать:

 QTableWidget::item:selected { color:red; }
  

Ответ №3:

электронная таблица класса: общедоступный QTableWidget

{ Q_OBJECT

 public://

Spreadsheet(const QString amp;fileName = QString(),
            QWidget *parent = 0);
QString currentLocation() const;
QString currentFormula() const;

void clear();
QTableWidgetSelectionRange selectedRange() const;
bool load(const QString amp;fileName = QString());
bool save(const QString amp;fileName = QString());
void printHtml(const QString amp;html);


public slots:// 

void selectCellFont();
void selectFontColour();
  

// etc