Python 如何使用.grid使用tkinter格式化GUI?
我正试图使用.grid来格式化我的GUI,但它什么也没做。下面是我的代码和我想要的布局 这是我正在使用的代码。我对Python很陌生 我不确定除了.grid之外还有其他的格式化方法,所以其他的选项也很好Python 如何使用.grid使用tkinter格式化GUI?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正试图使用.grid来格式化我的GUI,但它什么也没做。下面是我的代码和我想要的布局 这是我正在使用的代码。我对Python很陌生 我不确定除了.grid之外还有其他的格式化方法,所以其他的选项也很好 from tkinter import * class PayrollSummary: def __init__(pay): window = Tk() window.title("Employee Payroll") #Add Fr
from tkinter import *
class PayrollSummary:
def __init__(pay):
window = Tk()
window.title("Employee Payroll")
#Add Frame 1
frame1 = Frame(window)
frame1.pack()
#Add ReadFile Button
btReadFile = Button(frame1, text = "Read File")
btReadFile.pack()
#Add ShowPayroll Button
btShowPayroll = Button(frame1, text = "Show Payroll")
btShowPayroll.pack()
#Add FindEmployee by Name Button
btFindEmployee = Button(frame1, text = "Find Employee by Name")
btFindEmployee.pack()
#Add Highest Radio Button
rbHigh = Radiobutton(frame1, text = "Highest")
rbHigh.pack()
#Add Lowest Radio Button
rbLow = Radiobutton(frame1, text ="Lowest")
rbLow.pack()
#Add FindEmployee by Amount Button
btFindEmployee_A = Button(frame1, text = "Find Employee by Amount")
btFindEmployee_A.pack()
#Add WriteOutput Button
btOutput = Button(frame1, text = "Write Output to File")
btOutput.pack()
#Add Cancel Button
btCancel = Button(frame1, text = "Cancel")
btCancel.pack()
btReadFile.grid(row = 1, column = 2)
btShowPayroll.grid(row = 2, column = 2)
btFindEmployee.grid(row = 2, column = 4)
rbHigh.grid(row = 3, column = 2)
rbLow.grid(row = 3, column = 4)
btFindEmployee_A.grid(row = 3, column = 6)
btOutput.grid(row = 4, column = 2)
btCancel.grid(row = 4, column = 4)
window.mainloop()
PayrollSummary()
pack()
、grid()
和place()
是将小部件放入窗口(或其他小部件)的三种方法。如果对某些小部件使用
grid()
,则不要使用pack()
或place()
effbot.org上的文件:
我删除了所有的.pack()
,除了frame.pack()
之外,几乎得到了您所期望的
现在小部件需要左对齐('west'
),使用sticky='w'
在添加第二个帧之后,我得到了
代码:
pack()
、grid()
和place()
是将小部件放入窗口(或其他小部件)的三种方法。
如果对某些小部件使用grid()
,则不要使用pack()
或place()
effbot.org上的文件:
我删除了所有的.pack()
,除了frame.pack()
之外,几乎得到了您所期望的
现在小部件需要左对齐('west'
),使用sticky='w'
在添加第二个帧之后,我得到了
代码:
使用pack()
或grid()
,不要同时在同一个元素上使用。您还可以使用pack()
将frame
放在窗口中,使用grid()
将小部件放在frame内。使用pack()
或grid()
,不要同时放在同一个元素上。您还可以使用pack()
在窗口中放置frame
,并使用grid()
在框架中放置小部件。
from tkinter import *
class PayrollSummary:
def __init__(pay):
window = Tk()
window.title("Employee Payroll")
#Add Frame 1
frame1 = Frame(window)
frame1.pack()
#Add ReadFile Button
btReadFile = Button(frame1, text = "Read File")
#Add ShowPayroll Button
btShowPayroll = Button(frame1, text = "Show Payroll")
#Add FindEmployee by Name Button
btFindEmployee = Button(frame1, text = "Find Employee by Name")
#Add Highest Radio Button
rbHigh = Radiobutton(frame1, text = "Highest")
#Add Lowest Radio Button
rbLow = Radiobutton(frame1, text ="Lowest")
#Add FindEmployee by Amount Button
btFindEmployee_A = Button(frame1, text = "Find Employee by Amount")
#Add WriteOutput Button
btOutput = Button(frame1, text = "Write Output to File")
#Add Cancel Button
btCancel = Button(frame1, text = "Cancel")
btReadFile.grid(row = 1, column = 2, sticky='w')
btShowPayroll.grid(row = 2, column = 2, sticky='w')
btFindEmployee.grid(row = 2, column = 4, sticky='w')
rbHigh.grid(row = 3, column = 2, sticky='w')
rbLow.grid(row = 3, column = 4, sticky='w')
btFindEmployee_A.grid(row = 3, column = 6, sticky='w')
btOutput.grid(row = 4, column = 2, sticky='w')
btCancel.grid(row = 4, column = 4, sticky='w')
#Add Frame 2
frame2 = Frame(window, bg='red')
frame2.pack(fill='both') # try without `fill`
label2 = Label(frame2, text='Label in bottom Frame', bg='green')
label2.pack()
window.mainloop()
PayrollSummary()