私は 'ラベル'オブジェクトから作成されたテーブルを作成するために 'for'ループを使用しました。 'divider'とは別に、各ループは自身の2次元配列に追加されます(各列には13個の 'Labels'があります)。すべてのオブジェクトにそれぞれのテーブル内のインデックス位置を与えたいので、それらのポイントを参照して 'ラベル'の内容を変更することができます。2D配列内に 'tkinter'オブジェクトを設定するには?
#--------------------------------
entry_grid_exp=[]
entry_grid_req=[]
#--------------------------------
exp_list = Frame(program, bg="#dcdcdc", height=500, width=600)
exp_list.grid(row=3, column=1)
#--------------------------------
for i in range(1, 16):
entry_column=[]
for x in range(0, 13):
entry_column.append(Label(exp_list, width=15,bg="#FFFFFF",relief=SUNKEN))
entry_column[x].grid(row = x+6, column=i, padx=0, pady=0)
entry_grid_exp.append(entry_column)
Request_list = Label(exp_list, width=10, bg="#dcdcdc", fg="#000000", text="Requested list.")
Request_list.grid(row = 20, column=1)
for i in range(1,16):
box3 = Label(exp_list, width=10, bg="#dcdcdc", fg="#dcdcdc", text="divider")
box3.grid(row = 21, column=i)
for i in range(1, 16):
entry_column=[]
for x in range(0, 6):
entry_column.append(Label(exp_list, width=15,bg="#FFFFFF",relief=SUNKEN))
entry_column[x].grid(row = x+21, column=i, padx=0, pady=0)
entry_grid_req.append(entry_column)
#--------------------------------
Aボタンは 'stock_append' 関数を呼び出し、 'entry_grid_exp' と 'entry_grid_req' 引数に渡し提出します。私は、リストを 'for'ループに置き、リスト内のすべてのアイテムを 'Label'に帰属させると、私が 'configure'関数を呼び出すことができると言った記事を読んでいますが、うまくいかないようです。さらに、このループ(機能した場合)は、特定の1つの位置ではなく、「entry_grid_exp」内のすべての項目を構成します。
def stock_append(entry_grid_exp, entry_grid_req):
for Label in entry_grid_exp:
Label.configure(text="test")
私はこのプロジェクトを完了しようとしていると完全に失われた、と私は私がやっている見当がつかないので、絶対に任意の助けを感謝しています。
UPDATED例
from tkinter import *
root = Tk()
Med_font = ("Helvatica", 11)
Small_font = ("Helvatica", 9)
main = Frame(root, bg="#dcdcdc", height=600, width=600)
main.grid()
s_name = StringVar()
s_category = StringVar()
s_description = StringVar()
s_quantity = StringVar()
s_risk = StringVar()
s_ID = StringVar()
def stock_append(entry_grid_exp, entry_grid_req, program):
for item in entry_grid_exp:
Label.configure(program, text="test")
def stock_define(entry_grid_exp, entry_grid_req, program):
stock_frame = Frame(main, bg="#dcdcdc", height=100, width=1000)
stock_frame.grid()
name = Entry(stock_frame, width=15, textvariable=s_name)
name.grid(row=1, column=1, padx=10)
category = Entry(stock_frame, width=15, textvariable=s_category)
category.grid(row=1, column=2, padx=10)
description = Entry(stock_frame, width=15, textvariable=s_description)
description.grid(row=1, column=3, padx=10)
quantity = Entry(stock_frame, width=15, textvariable=s_quantity)
quantity.grid(row=1, column=4, padx=10)
risk = Entry(stock_frame, width=15, textvariable=s_risk)
risk.grid(row=1, column=5, padx=10)
stock_id = Entry(stock_frame, width=15, textvariable=s_ID)
stock_id.grid(row=1, column=6, padx=10)
submit = Button(stock_frame, width=15, text="submit", command=lambda: stock_append(entry_grid_exp, entry_grid_req,
program))
submit.grid(row=1, column=7, padx=10)
def stock_lists():
program = Frame(main, bg="#dcdcdc", height=600, width=600)
program.grid()
title = Label(program, text="MAIN", font=Med_font, bg="#dcdcdc")
title.grid(row=2, column=1)
entry_grid_exp = []
entry_grid_req = []
exp_list = Frame(program, bg="#dcdcdc", height=500, width=600)
exp_list.grid(row=3, column=1)
stock_add = Button(exp_list, bg="#bebebe", width=10, text="ADDSTCK", command=lambda: stock_define(entry_grid_exp,
entry_grid_req,
program))
stock_add.grid(row=4, column=15)
experiment_list = Label(exp_list, width=10, bg="#dcdcdc", fg="#000000", text="Experiment list.")
experiment_list.grid(row=4, column=1)
for i in range(1, 16):
entry_column = []
for x in range(0, 13):
entry_column.append(Label(exp_list, width=15, bg="#FFFFFF", relief=SUNKEN))
entry_column[x].grid(row=x+6, column=i, padx=0, pady=0)
entry_grid_exp.append(entry_column)
for i in range(1, 16):
divider = Label(exp_list, width=10, bg="#dcdcdc", fg="#dcdcdc", text="divider")
divider.grid(row=21, column=i)
request_list = Label(exp_list, width=10, bg="#dcdcdc", fg="#000000", text="Requested list.")
request_list.grid(row=20, column=1)
for i in range(1, 16):
entry_column = []
for x in range(0, 6):
entry_column.append(Label(exp_list, width=15, bg="#FFFFFF", relief=SUNKEN))
entry_column[x].grid(row=x+21, column=i, padx=0, pady=0)
entry_grid_req.append(entry_column)
stock_lists()
mainloop()
ボタンにコマンドをどのように割り当てていますか?つまり、Button(.....、command = _whatIsWritingHere_)です。ここで答えられている共通の間違いがあるので、私は尋ねています。 http://stackoverflow.com/questions/5767228/why-is-button-parameter-command-executed-when-declared – Lafexlos
「機能していない」とはどういう意味ですか?エラーが出ますか?もしそうなら、どのようなエラー?もしそうでなければ、何が起こり、それがあなたの期待とどのように違うのですか? –
FWIW、あなたのコードには、間違ってインデントされているようないくつかの行があります。しかし、それが[mcve]ではないので、私たちがあなたのコードをテストする(または変更する)のは難しいです。 BTWは 'Label'を' for Label in entry_grid_exp: 'の変数名として使うことは、Tkinterがその名前を使うことと衝突するので悪い考えです。もちろん、あなたが 'tkinter import *'から行っていなければ、その問題はありません... –