0

誰かが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」になり、感情も変化します。

残念ながら、インターネットでこの問題の提案は見つかりませんでした。アドバイスをいただければ幸いです。

4

1 に答える 1