Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt,Qtable在启用排序时清除列_Python_Qt_Pyqt_Pyqt4 - Fatal编程技术网

Python PyQt,Qtable在启用排序时清除列

Python PyQt,Qtable在启用排序时清除列,python,qt,pyqt,pyqt4,Python,Qt,Pyqt,Pyqt4,我在下一个函数中有一个bug。此函数用于刷新表格,调整列大小并对表格进行排序。但在某些情况下,对于某些行,第3列和第4列中的文本为空。我发现,它发生在“问题代码”部分。 这一部分我错了什么?我只想更改特定列的大小。 请帮我找出问题或指出我的错误 def print_day_worklog(self): logging.info('RefReshing day worklog table') selected_day = self.ui.dateDayWorklogEdit.dat

我在下一个函数中有一个bug。此函数用于刷新表格,调整列大小并对表格进行排序。但在某些情况下,对于某些行,第3列和第4列中的文本为空。我发现,它发生在“问题代码”部分。 这一部分我错了什么?我只想更改特定列的大小。 请帮我找出问题或指出我的错误

def print_day_worklog(self):
    logging.info('RefReshing day worklog table')
    selected_day = self.ui.dateDayWorklogEdit.date().toPyDate()
    day_work = db.get_day_worklog(self.creds[3], selected_day)
    self.ui.tableDayWorklog.setRowCount(len(day_work))
    for row, entry in enumerate(day_work):
        e0 = QtGui.QTableWidgetItem(entry[0])
        e1 = QtGui.QTableWidgetItem(entry[1])
        e2 = QtGui.QTableWidgetItem(entry[2].strftime('%H:%M'))
        e3 = QtGui.QTableWidgetItem(entry[3].strftime('%H:%M'))
        e4 = QtGui.QTableWidgetItem(utils.get_time_spent_string(entry[2],
            entry[3]))
        # debug
        print e0.text(), e1.text(), e2.text(), e3.text(), e4.text()
        self.ui.tableDayWorklog.setItem(row, 0, e0)
        self.ui.tableDayWorklog.setItem(row, 1, e1)
        self.ui.tableDayWorklog.setItem(row, 2, e2)
        self.ui.tableDayWorklog.setItem(row, 3, e3)
        self.ui.tableDayWorklog.setItem(row, 4, e4)

    # problem code starts
    self.ui.tableDayWorklog.horizontalHeader().setResizeMode(1,
        QtGui.QHeaderView.Stretch)
    for column in (0,2,3,4):
        self.ui.tableDayWorklog.resizeColumnToContents(column)
        self.ui.tableDayWorklog.horizontalHeader().setResizeMode(column,
            QtGui.QHeaderView.Fixed)
        self.ui.tableDayWorklog.horizontalHeader().setResizeMode(column,
            QtGui.QHeaderView.Fixed)
    self.ui.tableDayWorklog.sortByColumn(2,0)
    # problem code ends

另外,它看起来不清楚,但这是因为我试图捕捉到错误,问题在于表排序。我发现这个想法有问题。 我刚才又加了一句

self.ui.tableDayWorklog.setSortingEnabled(False)
在填桌子和这个之前

self.ui.tableDayWorklog.setSortingEnabled(True)
在那之后。这很有帮助