我试图根据从Sqlite数据库加载的数据中的某个值设置TableWidget的背景色,如下面的示例所示。我在PyQt Tableview background color based on text value rather than True or False中看到了下面的答案。在
问题是,在我的设置中,我使用的TableWidget带有一个按钮(我使用Qt Designer)从Sqlite数据库加载数据,我不太确定如何在我的设置中实现以下代码,因为我不完全理解它是如何工作的:
def data(self, item, role):
if role == Qt.BackgroundRole:
if QSqlQueryModel.data(self, self.index(item.row(), 2), Qt.DisplayRole) == "Young":
return QBrush(Qt.yellow)
if role == Qt.DisplayRole:
if item.column() == 3:
return True if QSqlQueryModel.data(self, item, Qt.DisplayRole) == 1 else False
return QSqlQueryModel.data(self, item, role)
下面是我选择Sqlite数据并将其显示到TableWidget的代码。我使用的是PyQT4,pyhton2.7。在
^{pr2}$使用的数据库是sqlite。4行4列。列标题:编号、公司、设备、状态“状态”记录包括“是”或“否”。所以无论“否”在哪里,我都希望背景是红色的
数据库中的我的表
基于特定值的表格视图颜色
post的解决方案示例只有在使用
QTableView
,QTableWidget
时才有效,QTableWidget
不允许建立新的模型,有几个选项可以解决这个问题。在对于示例,我将假定数据具有以下形式:
setBackground()
方法QTableWidgetItem
^{pr2}$
输出:
相关问题 更多 >
编程相关推荐