如何根据PYQT中的tableview单元格值更改背景颜色

时间:2018-05-05 14:19:54

标签: python pyqt qtablewidget

我是Python和PYQT的新手,我正在尝试根据单元格的值更改Tableview单元格的背景颜色。 使用我在这里阅读的一些例子,我想出了这段代码。

def openWindow(self):
    self.window = QtWidgets.QMainWindow()
    self.ui = Ui_Variacao_Diaria()
    self.ui.setupUi(self.window)
    self.window.show()

    file = r'C:/Desktop/Teste_base.xlsx'
    df = pd.read_excel(file)

    df2 = pd.pivot_table(df,index=["Date"],columns=["Club"])
    df3 = pd.DataFrame(df2.to_records())
    headers = list(df3)

    self.ui.t_var.setColumnCount(0)
    for c in range(0,len(df3.columns)):
        self.ui.t_var.insertColumn(c)  
        self.ui.t_var.setRowCount(0)
        for l in range(0,len(df3)):
            self.ui.t_var.insertRow(l)
            for c in range(0,len(df3.iloc[l])):
                self.ui.t_var.setItem(l, c, QTableWidgetItem(str(df3.iloc[l][c])))                    
                self.ui.t_var.setHorizontalHeaderLabels(headers)
                if df3.iloc[l][c] < 100:
                    self.ui.t_var.item(l,c).setBackground(QtGui.QColor(125,125,125)) 

问题是,当我把这个

如果df3.iloc [1] [c]&lt; 100:self.ui.t_var.item(l,c).setBackground(QtGui.QColor(125,125,125))

我的代码在第一个单元格中停止,并且没有用数据填充我的TableView的其余部分。 如何连续循环?

0 个答案:

没有答案