私は tkintertable を使用しており、どの行が選択されているかを確認したいと考えています。これは可能ですか?また、列を並べ替えて、好きなように列に名前を付けたい...
これどうやってするの?
少し遅れましたが、他の誰かが私のようにGoogle検索でこれを見つけた場合に備えて、これに答えると思いました:P
マウスのクリックに基づいてデータを選択するには、いくつかの方法があります。
まず、マウス クリックをコールバック関数にバインドする必要があります。このコールバック関数では、データを取得する必要があります。マウス ボタンを離したときにデータを取得できるように、リリース時にマウス クリックをバインドする必要がある場合があります。
table.get_row_clicked()/table.get_col_clicked() 関数を model.getValueAt() と共に使用して、個々のセルを取得できます。
column_name = key & 選択した行の内容 column = value であるディクショナリ内の行全体の内容を取得するには、model.getRecordAtRow(row_index) を使用する必要があります。
例:
from Tkinter import *
from ttk import *
from tkintertable.Tables import TableCanvas
from tkintertable.TableModels import TableModel
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.model = TableModel()
self.table = TableCanvas(self, model=self.model)
self.table.createTableFrame()
root.bind('<ButtonRelease-1>', self.clicked) #Bind the click release event
self.create_widgets()
def create_widgets(self):
self.table.model.load('save.table') #You don't have to load a model, but I usually
self.table.redrawTable() #Create a base model for my tables.
d = dir(self.table) #Will show you what you can do with tables. add .model
#to the end to see what you can do with the models.
for i in d:
print i
def clicked(self, event): #Click event callback function.
#Probably needs better exception handling, but w/e.
try:
rclicked = self.table.get_row_clicked(event)
cclicked = self.table.get_col_clicked(event)
clicks = (rclicked, cclicked)
print 'clicks:', clicks
except:
print 'Error'
if clicks:
#Now we try to get the value of the row+col that was clicked.
try: print 'single cell:', self.table.model.getValueAt(clicks[0], clicks[1])
except: print 'No record at:', clicks
#This is how you can get the entire contents of a row.
try: print 'entire record:', self.table.model.getRecordAtRow(clicks[0])
except: print 'No record at:', clicks
root = Tk()
root.title('Table Test')
app = Application(master=root)
print 'Starting mainloop()'
app.mainloop()
他のことに関しては、ウィキから情報を取得できるはずです。
http://code.google.com/p/tkintertable/wiki/Usage
理解するのが面倒なことがいくつかありますが、それは価値があります。セルの内容をプログラムで変更する方法はまだわかりません。それは wiki ページにあります (笑)。