私はチェックボックスのリストが表示され、スクロール可能な新しいウィンドウを開こうとします。Scrollbar、Checkbutton、canvas in python 2.7
しかし、私のリストはスクロールされません。新しいウィンドウが開かれなければならないことを、私はこの特定のものへの答えを見つけることができません
class PageCanvas1(tk.Toplevel):
def __init__(self, parent):
global arr
global users
arr = {}
tk.Toplevel.__init__(self, parent)
self.title('Canvas')
self.geometry('400x600')
canvas = tk.Canvas(self, bg='white', scrollregion=(0, 0, 400, 20000))
canvas.pack(fill='both', expand=True)
vbar = tk.Scrollbar(canvas, orient='vertical')
vbar.pack(side='right', fill='y')
vbar.config(command=canvas.yview)
canvas.config(yscrollcommand=vbar.set)
canvas.create_text(5, 0, anchor='nw', text="Choose users: ")
for i in range(1000):
arr[i] = tk.IntVar()
Checkbutton(canvas, text=str(i), variable=arr[i]).pack()#.grid(row=i, sticky=W)
root = Tk()
b_choose = Button(root, text='choose users', height=3, width=15, bg="turquoise", command=(lambda arr=ents: PageCanvas(root)))
: これは私のコードです!私は助けて嬉しいです!
説明なしですべてのコードである回答はほぼ無駄です。読者は、あなたが何を変更したかを見るために、行単位で行なわなければなりません。この答えは、コードが何を異なるのか、なぜそれがうまくいくのかを説明するパラグラフまたは2を追加した方が良いでしょう。 –
@James Kentに感謝します!あなたは私の日を救った!とブライアンオークリー、彼はコードの説明を追加 – ShiraOzeri
あなたのコードを使用しました。そして問題は解決されました!今私はフレームのサイズに別の小さな問題があります。大きすぎるリストを作成すると、リストの先頭が表示されません(たとえば、このコードでは500番からしか見えません)。 – ShiraOzeri