さまざまな長さのチェックボックスリストを3セット作成し、それをtkinter GUI内のページに3列で表示しようとしています。リスト1は整数ベースのリスト、2 & 3はストリングです。これらのリストの名前の変数は、GUIの開始前にコードの前半で定義されています。 N_index = [1, 2, 3]
T_index = [T1, T2, T3]
P_index = [P1, P2, P3]
tkinterで複数のチェックボックスを作成する
リストの長さは、私は、この使用しているコードがそのように実行されるたびに変更されます。
N_leng = range(1, int(len(N_index)+1))
T_leng = range(1, int(len(T_index)+1))
P_leng = range(1, int(len(P_index)+1))
私は部分的に作成するために使用したコードを私のGUIはここから取られるSwitch between two frames in tkinter(ありがとう)
私はこれらのリストをページ1に入れようとしています。
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
f = tk.Frame(self)
f.pack(side="left")
label = ttk.Label(f, text="Page One", font=LARGE_FONT)
label.pack(pady=10, padx=10)
次に、3つのチェックボックスがあります。コードを実行すると実行され、決して終了しません。ただし、デバッグモードであってもエラーは発生しません。誰かが私の間違いを見つけられますか?
def ckbox_params():
for i, j in zip(N_index, N_leng):
ivar = tk.IntVar()
N_selection1 = tk.Checkbutton(f, text="%d" % i, variable=ivar, onvalue=i, offvalue="")
N_selection1.grid(sticky="nw", pady=4)
for i, k in zip(T_index, T_leng):
svar = tk.StringVar()
T_selection1 = tk.Checkbutton(f, text="%s" % i, variable=svar, onvalue=i, offvalue="")
T_selection1.grid(sticky="nw", pady=4)
for i, l in zip(P_index, P_leng):
svar = tk.StringVar()
P_selection1 = tk.Checkbutton(f, text="%s" % i, variable=svar, onvalue=i, offvalue="")
P_selection1.grid(sticky="nw", pady=4)
ckbox_params()`
私が間違っていたことに関して、提案、アイデア、または解決策が役立ちます。
は、問題はあなたがラベルにpack
を使用して、チェックボックスのためのgrid
されているということですが、ラベルやチェックボックスの両方が同じ親を共有し、あなたに
どこにルートウィンドウを作成しますか? 'ckbox_params'は' f'についてどのように知っていますか?あなたが[mcve]を投稿すると助けになります。 –
なぜあなたは 'int(len(...))'をやっていますか? 'len'はintを返します。 –
申し訳ありません。PM 2Ring私はあなたに必要な情報量を知らなかった。私はこのすべてに非常に新しく、これはOOPで私の最初の試みですので、私は間違いを犯します。 – OParker