主要使用QTableWidget中的三個函數實現:
- verticalScrollBar().setSliderPosition() 設置當前滑動條的位置
- verticalScrollBar().maximum() 滑動條能移動的最大位置
- verticalScrollBar().value() 獲得當前滑動條的位置
實現翻頁功能時,可以繼承QTableWidget重新定義TableWidget,方便調用:
class MyTableWidget(QtGui.QTableWidget): def __init__(self): super(MyTableWidget, self).__init__() self.nCurScroller = 0 # 翻頁時的當時滑動條位置 self.pageValue = 24 # 一頁顯示條數 self.create_form() def create_form(self): self.horizontalHeader().setVisible(False) # 隱藏水平表頭 self.setEditTriggers(QtGui.QAbstractItemView.DoubleClicked) # 雙擊編輯 # self.horizontalHeader().setResizeMode(QtGui.QHeaderView.ResizeToContents) # self.verticalHeader().setResizeMode(QtGui.QHeaderView.ResizeToContents) def pre_page(self): max_value = self.verticalScrollBar().maximum() # 當前SCROLLER最大顯示值 self.nCurScroller = self.verticalScrollBar().value() # 獲得當前scroller值 if self.nCurScroller > 0: self.verticalScrollBar().setSliderPosition(self.nCurScroller - self.pageValue) else: self.verticalScrollBar().setSliderPosition(max_value) def next_page(self): # verticalScrollBar().setSliderPosition() 設置當前滑動條的位置 # verticalScrollBar().maximum() 滑動條能移動的最大位置 # verticalScrollBar().value() 獲得當前滑動條的位置 max_value = self.verticalScrollBar().maximum() # 當前SCROLLER最大顯示值 self.nCurScroller = self.verticalScrollBar().value() # 獲得當前scroller值 if self.nCurScroller < max_value: self.verticalScrollBar().setSliderPosition(self.pageValue + self.nCurScroller) else: self.verticalScrollBar().setSliderPosition(0)