Tkinter GUI开发:居中按钮

时间:2019-03-23 16:07:27

标签: python python-3.x tkinter

我在使用Python 3 tkinter模块水平放置在窗口上的居中位置时遇到问题。使用padx=some_valuepady=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()

这可能吗?

2 个答案:

答案 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()