誰かがtkinterテーブルで働いたことがありますか?新しい行にデータを追加する際に問題が発生しました。ユーザーがオブジェクトを入力する入力フィールドがあります。次に、def onButtonSents()
この単語が配列に含まれているかどうかを確認し、objects
このオブジェクトをObjectという名前のテーブルの最初の列に入力し、2番目の列にオブジェクトの肯定的な感情を追加します。ボタンをクリックして新しい行を追加し、辞書の1つの行の値の異なる列に配置したいと思います。ここに私が今持っているもの:
file sentiment_analysis.py:
objects [] #an array of objects which user enters into entry field
positiveSentiments = dict() #dictionary with key - object and positive words which correspond to it
negativeSentiments = dict() #dictionary with key - object and negative words which correspond to it
array_cols = ['Object', 'Positive sentiments', 'Negative sentiments']
var = tktable.ArrayVar()
#below is initialization of my tkinter table
import tktable
array_cols = ['Object', 'Positive sentiments', 'Negative sentiments']
var = tktable.ArrayVar()
table = tktable.Table(frame,
rows = 1,
cols = 3,
roworigin=0,
colorigin=0,
variable=var,)
table.pack(side='bottom', fill='both')
var.set(index='0,0', value = 'Object')
table.tag_configure('active', )
var.set(index='0,1', value = 'Positive Sentiments')
var.set(index='0,2', value = 'Negative Sentiments')
#The method which puts data into the rows of table
def onButtonSents():
table.insert_rows(1)
for i in range (1, 5):
index1 = '%i,%i' % (i, 0)
table.activate(index1)
for key in sentiment_analysis.positiveSentiments.keys():
if key == entry.get():
var.set(index='active', value=entry.get())
for i in range (1, 5):
index2 = '%i,%i' % (i, 1)
table.activate(index2)
for key in sentiment_analysis.positiveSentiments.keys():
if key == entry.get():
var.set(index='active', value=sentiment_analysis.positiveSentiments[key])
for i in range (1, 5):
index3 = '%i,%i' % (i, 2)
table.activate(index3)
for key in sentiment_analysis.negativeSentiments.keys():
if key == entry.get():
var.set(index='active', value=sentiment_analysis.negativeSentiments[key])
しかし、テーブルのセルは正しく入力されていません。最初のオブジェクトは正しく入力されていても、最初に「ubs」と入力するとすべてのオブジェクトが同じになり、2番目の「wheat」と入力すると最初のオブジェクトも「wheat」になり、感情も変化します。
残念ながら、インターネットでこの問題の提案は見つかりませんでした。アドバイスをいただければ幸いです。