Интерфейсы Python: как задать ... Заметка
RSS Планета Python

Интерфейсы Python: как задать цвета фона строк в QTableView — используйте BackgroundRole от Qt для окраски целых строк на основе ваших данных

Чтобы визуально отобразить статус устройства в QTableView, вы можете выделить целые строки, настроив метод data() модели. Представление QTableView запрашивает у модели различные роли данных для каждой ячейки, включая Qt.BackgroundRole. Возвращая QColor из метода data() вашей модели при запросе Qt.BackgroundRole, на основе условий в данных строки, вы можете установить цвет фона. Важно отметить, что этот цвет применяется ко всем ячейкам этой строки, поскольку метод data() вызывается для каждой ячейки, и решение о цвете не зависит от индекса столбца. Пример демонстрирует это, окрашивая строки в синий цвет для статуса "NewConnection" и в зеленый для статуса "Registered". Чтобы обеспечить читаемость текста на цветном фоне, вы также можете обрабатывать Qt.ForegroundRole и возвращать контрастный цвет текста. Если данные изменяются динамически, вы должны выпустить сигнал dataChanged из модели, чтобы побудить представление перерисовать и отобразить обновленные цвета строк. Этот подход обеспечивает четкий, основанный на данных метод выделения строк в QTableView.