我在使用Python 3 tkinter模块水平放置在窗口上的居中位置时遇到问题。使用padx=some_value
或pady=some_value
看起来很丑,而网格并不是我想要的。
我希望我可以将两个按钮居中并排放置。
这是我到目前为止所得到的:
import tkinter
gui = tkinter.Tk()
gui.title('TicTacToe')
gui.geometry('700x700')
singlePlayerBut = tkinter.Button(gui, text='Single Player', command=0)
singlePlayerBut.pack(side=tkinter.RIGHT, padx=50, anchor=tkinter.CENTER)
multiPlayerBut = tkinter.Button(gui, text='Multi Player', command=0)
multiPlayerBut.pack(side=tkinter.LEFT, padx=50, anchor=tkinter.CENTER)
gui.mainloop()
这可能吗?
答案 0 :(得分:2)
或者,您可以改用grid
:
import tkinter
gui = tkinter.Tk()
gui.title('TicTacToe')
gui.geometry('700x700')
gui.rowconfigure(0,weight=1)
gui.columnconfigure(0,weight=1)
gui.columnconfigure(1,weight=1)
singlePlayerBut = tkinter.Button(gui, text='Single Player', command=0)
singlePlayerBut.grid(row=0,column=0,sticky="e")
multiPlayerBut = tkinter.Button(gui, text='Multi Player', command=0)
multiPlayerBut.grid(row=0,column=1,sticky="w")
gui.mainloop()
或者,如果您不关心其他任何事情,只想将这两个按钮放在中间,请使用place
。
singlePlayerBut.place(relx=0.4,rely=0.5)
multiPlayerBut.place(relx=0.51,rely=0.5)
答案 1 :(得分:1)
以下是实施我在评论中建议的方法:
import tkinter
gui = tkinter.Tk()
gui.title('TicTacToe')
gui.geometry('700x700')
button_frame = tkinter.Frame(gui) # Frame to hold (and group) buttons.
singlePlayerBut = tkinter.Button(button_frame, text='Single Player', command=0)
singlePlayerBut.pack(side=tkinter.RIGHT, padx=50, anchor=tkinter.CENTER)
multiPlayerBut = tkinter.Button(button_frame, text='Multi Player', command=0)
multiPlayerBut.pack(side=tkinter.LEFT, padx=50, anchor=tkinter.CENTER)
button_frame.pack() # Default side is tkinter.TOP
gui.mainloop()