データのセクション内に複数の行を含めることができるテキストを開くようにユーザーに依頼する次のコードがあります。
次に、行ごとに OptionMenu を作成する必要があります。私の問題は、オプションメニューごとに異なることを行い、それを「グリッド」の特定の行にのみ適用する必要があることです。それらをすべて同じ名前で作成していて、別の方法を理解していないため、これを行うことはできません。
with askopenfile(filetypes=[(".txt files","*.txt")], title='Import', mode='r') as f:
data_dict=parse_file(f)
info=data_dict['three']
i = 2
for row in info:
# Create row in 'table' for each output
no_1, code, value = row # Obtain results
def three( code ):
c = { "1" : "1",
"2" : "2",
"3" : "3" }
try:
return c[code]
except KeyError:
return "None"
variablelist = StringVar(self.frame_table)
variablelist.set("Fixed")
self.list1 = OptionMenu(self.frame_table, variablelist, "Fixed", "List", "Min", "Max", command=self.ChoiceBox)
self.list1.grid(row=i, column=6, sticky="nsew", padx=1, pady=1)
i = i + 1
たとえば、3 行目のうち 2 行目の横に追加のボックスを作成したいのですが、3 行目が最後に作成されるため、グリッド情報を取得しようとすると、3 行目にしか追加できません。
このようにした理由は、行の量が常にわかっているとは限らず、オプション メニューを毎回個別に作成するコード行を大量に作成したくなかったからです (たとえ行数を知っていたとしても)。 )。