QTableView,经过修改

时间:2013-01-31 17:02:37

标签: python pyqt

我的程序有一个QTableView,它显示来自sqlite数据库的数据。由于我的程序将用于对视频文件进行排序,而不是太多,我修改了模型的select方法,将所有数据库加载到内存中,而不是255个条目(默认情况下)。效果很好,但是:

我还有一个个人标题,我可以点击按修改日期,名称和投票对条目进行排序。让我们承认,我通过修改数据对数据进行排序,而不是尝试修改任何东西:它可以工作,一切都是有序的。 但如果修改一个单元格,这个名字就是一个例子,这就是:

  • 程序加载255个条目,按日期排序,然后显示它们
  • 它加载255个其他条目,按日期排序,然后显示它们

修改后,如果再次尝试按数据对数据进行排序,一切正常。 但是在每次修改时,程序仅加载255个条目。基本上,我错过了一个回调(一个在你更新之后被调用的回调)。

我不知道是否必须修复视图或模型。你有什么想法吗?

在我的应用中,我可以使用视图的某些功能来修复它:

column_sorted = self.tableau.horizontalHeader().sortIndicatorSection()
order = self.tableau.horizontalHeader().sortIndicatorOrder()

if column_sorted is not None:
    self.tableau.sortByColumn(column_sorted, order)
else:
    pass

但我更喜欢更通用的方法。

以下是对我的数据库进行修改的一段代码:

def voter(self):

    self.bdd.close()
    liste.vote(self.current_video)
    self.bdd.open()
    self.modele.select()

但问题出现在每个修改数据库的函数上。我想补充一点,我使用的是QSortProxyFilter:

self.proxy = QtGui.QSortFilterProxyModel()
self.proxy.setSourceModel(self.modele)

很抱歉,如果我不清楚,但很难描述这个错误,我的应用程序开始变大(~3000行)。

0 个答案:

没有答案