from tkinter import *
from pandastable import Table, TableModel
class TestApp(Frame):
"""Basic test frame for the table"""
def __init__(self, parent=None):
self.parent = parent
Frame.__init__(self)
self.main = self.master
self.main.geometry('600x400+200+100')
self.main.title('Table app')
f = Frame(self.main)
f.pack(fill=BOTH,expand=1)
df = TableModel.getSampleData()
self.table = pt = Table(f, dataframe=df,
showtoolbar=True, showstatusbar=True)
pt.show()
pt.movetoSelection(row = 23, col=1)
return
app = TestApp()
app.mainloop()
Я хочу показать pd.df
, используя pandastable
library
, и мне нужно, чтобы изначально сфокусированная строка была на один шаг внизу df
, а таблица прокручивалась вниз на этой строке. на его чертеже.
Я нашел (наиболее вероятно) соответствующий метод, который должен быть movetoSelection(row=None, col=0, idx=None, offset=0)
, а описание в library
документации довольно ограничено "Переместить вконкретная строка / столбец, обновляемая таблица ", которая, тем не менее, должна делать свою работу.
Я звоню method
с pt.movetoSelection(row = 23, col=1)
, потому что я нашел аналогичное использование на странице github *1018* (строка сценария 1272): table.movetoSelection(row=i,col=j,offset=3)
. К сожалению, это приводит к ошибке:
Traceback (most recent call last):
File "C:\Users\svobodov\Desktop\data\tests\print_df_in_window\2. pandastable\0.2 return marked lines\test.py", line 21, in <module>
app = TestApp()
File "C:\Users\svobodov\Desktop\data\tests\print_df_in_window\2. pandastable\0.2 return marked lines\test.py", line 18, in __init__
pt.movetoSelection(row = 23, col=1)
File "C:\Python35\lib\site-packages\pandastable\core.py", line 2397, in movetoSelection
self.drawSelectedRow()
File "C:\Python35\lib\site-packages\pandastable\core.py", line 3297, in drawSelectedRow
x1,y1,x2,y2 = self.getCellCoords(row,0)
File "C:\Python35\lib\site-packages\pandastable\core.py", line 2067, in getCellCoords
x1=self.col_positions[col]
IndexError: list index out of range
Я посмотрел исходные сценарии и определение метода в core.py
, и, выполнив некоторые печати, я обнаружил, что self.col_positions
- это пустое list
но я не могу понять, почему это так.
Чтобы описать текущее поведение в стороне от сообщения об ошибке, при запуске сценария данная строка выделяется / выделяется, но фокус не опускается до этой строки, то есть верхней, а не нижней строкитаблица появляется.
Пример взят из library
документов , добавлена только строка с pt.movetoSelection(row = 23, col=1)
.