私はTkinterを学び、2つの質問があります。Tkinter - チェックボックスをソートしてクリックすると印刷する
1 [第一1は、コメント欄に答え] - なぜ、辞書内の項目を正しい順序で印刷されていないのですか? ボタンから「グリッド」部品を削除すると、注文されていないことがわかります。
2 - なぜボタンが表示されないのですか?私はチェックボックスのすぐ下にボタンを作って、クリックされたチェックボックスごとに "1"を表示したい。
This linkを参照してください。
from Tkinter import *
master = Tk()
def read():
print dict[mini].get()
dict = {"first": 0, "second": 0, "third": 0}
for mini in dict:
dict[mini] = Variable()
l = Checkbutton(master, text=mini, variable=dict[mini])
l.grid(sticky=W, pady=4)
l.pack()
Button(master, text='Show', command=read).grid(row=len(dict) + 1, sticky=W, pady=4)
master.mainloop()
編集:スペル
辞書は順序を保持しません。 ['collections.OrderedDict'](https://docs.python.org/2/library/collections.html#collections.OrderedDict)を見てください。 – zondo
それを知らなかった、助けてくれてありがとう。しかし、私はそれを動作させるように見えませんでした。私はここで何が間違っていたのですか? http://pastebin.com/t7yMrCwu – firko
辞書を渡すと、辞書は順序付けされず、 'OrderedDict'は元の注文が何であったかを知りません。 'OrderedDict([( 'first'、0)、( 'second'、0)])'を使うべきです。 – zondo