1

私は別々の関数を定義し、関数を持っていmain()ます。main()関数には、クリックすると他の関数を呼び出すいくつかのボタンがあります。例えば。

def main():
    global root
    global tkinter
    global canvas
    root = Tk()
    root.title("Shapes Quiz - Flow Computing")
    Button(root, text ="1", bg="Grey", width=10, command=pentagon).pack()
    Button(root, text ="2", bg="Grey", width=10, command=circle).pack()
    Button(root, text ="3", bg="Grey", width=10, command=diamond).pack()
    Button(root, text ="4", bg="Grey", width=10, command=hexagon).pack()
    Button(root, text ="5", bg="Grey", width=10, command=triangle).pack()
    Button(root, text ="6", bg="Grey", width=10, command=square).pack()
    Button(root, text ="7", bg="Grey", width=10, command=rectangle).pack()
    Button(root, text ="8", bg="Grey", width=10, command=heptagon).pack()
    Button(root, text ="9", bg="Grey", width=10, command=octagon).pack()
    Button(root, text ="10", bg="Grey", width=10, command=oval).pack()
    Button(root, text ="Help", bg="Grey", width=10, command=help).pack()
    Button(root, text ="Clear", bg="Red", width=10, command=clearshapes).pack()
    Button(root, text ="QUIT", bg="Red", width=10, command=quit).pack()

これらのボタンを整理する簡単な方法があるはずです。フレームやグリッド、さらには座標の使用について聞いたことがあります。しかし、私はまだこれを行う方法がわかりません。

現在表示されている垂直ではなく、水平になるようにボタンを整理したいと思います。

4

2 に答える 2

2

に変更pack()pack(side='left')ます。

于 2013-03-21T20:23:12.960 に答える
2

確かに、グリッドジオメトリマネージャーを使用してこれを行う簡単な方法があります(リンクはすでにコメントにあります):

# ...
root.title("Shapes Quiz - Flow Computing")
BUTTONS = [{"text":"1", "bg":"Grey", "width":10, "command":pentagon},
           {"text":"2", "bg":"Grey", "width":10, "command":circle},
           # Rest of the buttons
           {"text":"QUIT", "bg":"Red", "width":10, "command":quit}]
for i, options in enumerate(BUTTONS):
    Button(root, **options).grid(row=0, column=i)

常にほぼ同じコードを使用するため、forループを使用してウィジェットのオプションを事前に宣言すると、見た目がすっきりする可能性があることに注意してください。

于 2013-03-21T20:21:49.600 に答える