如何将tkinter按钮放置在特定区域?

时间:2019-07-19 21:54:23

标签: python-3.x tkinter

我正在制作一个程序,用于轻松查找预订联系人。当我输入所有这些信息时,按钮将停留在窗口的左上方。我如何在屏幕中间找到它们?更好的是,我如何将它们放置在我通常想要的任何地方? (不必担心Webbrowser导入将在程序的后面提供)

import webbrowser
from tkinter import *
from tkinter import ttk

root = Tk()
root.title('GUI Booking')
root.geometry('600x400')
root.resizable(width=False, height=False)

style = ttk.Style()
style.configure("TButton", 
                font="TkDefaultFont", 
                height=20, 
                width=20,
                padding=10)
main_frame = Frame()
main_frame.grid(row=0, columnspan=4)

# Starting Window
button_location = ttk.Button(main_frame, text='Location').grid(row=1, column=3)
button_name = ttk.Button(main_frame, text='Name').grid(row=2, column=3)
button_email = ttk.Button(main_frame, text='Email').grid(row=3, column=3)




root.mainloop()

What the window looks like

3 个答案:

答案 0 :(得分:0)

您可以使用行/列配置将按钮居中:http://www.effbot.org/tkinterbook/grid.htm 我已经在您的根配置下添加了它。最终,小部件的位置将取决于您使用的小部件以及通过网格管理器调整其位置。

import webbrowser
from tkinter import *
from tkinter import ttk

root = Tk()
root.title('GUI Booking')
root.geometry('600x400')
root.resizable(width=False, height=False)

root.grid_rowconfigure(0, weight=1)  # Added to center buttons
root.grid_columnconfigure(0, weight=1)  # Added to  center buttons

style = ttk.Style()
style.configure("TButton",
            font="TkDefaultFont",
            height=20,
            width=20,
            padding=10)
main_frame = Frame()


# Starting Window
button_location = ttk.Button(main_frame, text='Location').grid(row=1, column=1)
button_name = ttk.Button(main_frame, text='Name').grid(row=2, column=1)
button_email = ttk.Button(main_frame, text='Email').grid(row=3, column=1)

main_frame.grid(row=0, column=0)


root.mainloop()

答案 1 :(得分:0)

使用.place选项代替.grid

...
Button = Button(something, text='Something', command=Something)
Button.place(x=value(e.g:2), y=value(e.g:2))
...

答案 2 :(得分:0)

如果您希望他们在屏幕中间显示给我,请使用.pack而不是.grid

import webbrowser
from tkinter import *
from tkinter import ttk
root = Tk()
root.title('GUI Booking')
root.geometry('600x400')
root.resizable(width=False, height=False)

style = ttk.Style()
style.configure("TButton", 
                font="TkDefaultFont", 
                height=20, 
                width=20,
                padding=10)
main_frame=Frame()

# Starting Window
button_location = ttk.Button(main_frame, text='Location').grid()
button_name = ttk.Button(main_frame, text='Name').grid()
button_email = ttk.Button(main_frame, text='Email').grid()
main_frame.pack()
root.mainloop()

警告:请勿在同一窗口中使用.pack.grid