最后
其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《前端开发四大模块核心知识笔记》
最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
from tkinter import ttk
root = Tk()
btn = ttk.Button(root,text=“一个按钮”)
btn.grid(column=0,row=0)
btn2 = ttk.Button(root,text=“两个按钮”)
btn2.grid(column=0,row=1,ipadx=10)
btn3 = ttk.Button(root,text=‘三个按钮’)
btn3.grid(column=0,row=2,ipady=10)
btn4 = ttk.Button(root,text=“四个按钮”)
btn4.grid(column=0,row=3,ipady=10,ipadx=10)
root.mainloop()
代码执行结果如下图:
按钮控件的内部被填充了额外的控件,变得臃肿。
padx、pady 参数
padx
和 pady
参数属于外边距,类似于 css
样式中的 margin
参数。
padx
:外部横向填充,添加到控件外部的左侧和右侧。
pady
:外部纵向填充,添加到控件外部的上侧和下侧。
示例代码如下:
from tkinter import *
from tkinter import ttk
root = Tk()
btn = ttk.Button(root,text=“一个按钮”)
btn.grid(column=0,row=0)
btn2 = ttk.Button(root,text=“两个按钮”)
btn2.grid(column=0,row=1,pady=10)
btn3 = ttk.Button(root,text=‘三个按钮’)
btn3.grid(column=0,row=2)
btn4 = ttk.Button(root,text=“四个按钮”)
btn4.grid(column=1,row=0,padx=10)
root.mainloop()
代码执行结果如下图:
第二个和第四个按钮因为增加了外边距和其他按钮中间产生了空隙。
sticky 参数
sticky
选项确定如何在单元格内分配控件件未以其自然大小占用的任何额外空间。
如果不指定 sticky
参数,控件将居于单元格中部,未占据的额外控件均匀分布四周。
sticky
有四个可选值,分别为:N
、S
、W
、E
,分别对应上、下、左、右。
sticky=(N,S)
使控件上下方向拉伸,并保持横向居中。
sticky=(W,E)
使控件左右方向拉伸,并保持上下居中。
示例代码如下:
from tkinter import *
from tkinter import ttk
root = Tk()
btn1 = ttk.Button(root,text=“第一个按钮”)
btn2 = ttk.Button(root,text=“第二个按钮”)
btn3 = ttk.Button(root,text=“第三个按钮”)
btn4 = ttk.Button(root,text=“第四个按钮”)
btn5 = ttk.Button(root,text=“第五个按钮”)
btn1.grid(column=0,row=0,sticky=N)
btn2.grid(column=0,row=1,sticky=E)
btn3.grid(column=0,row=2,sticky=W)
btn4.grid(column=0,row=3,sticky=S)
btn5.grid(column=0,row=4,sticky=(E,W))
root.columnconfigure(0,weight=1)
root.rowconfigure(2,weight=1)
root.rowconfigure(3,weight=1)
root.mainloop()
代码执行结果:
rowconfigure
和 columnconfigure
方法可以设定每个行和列的比例,我们可以通过这种方式使控件伴随窗口大小变化,自动适应。
编写一个简单的计算器界面
编写一个简单的计算器界面是练习 grid
布局最有效的方式,下面代码就是一个计算器界面的简单实现:
from tkinter import *
from tkinter import ttk
root = Tk()
s = ttk.Style()
s.configure(‘1.TFrame’,background=‘red’,width=16)
s.configure(‘1.TButton’,width=3)
main = ttk.Frame(root,style=‘1.TFrame’)
ety = ttk.Entry(main,width=17)
btn_add = ttk.Button(main,text=’ + ',style=‘1.TButton’)
btn_ac = ttk.Button(main,text=“AC”,style=‘1.TButton’)
btn_del = ttk.Button(main,text=“Del”,style=‘1.TButton’)
btn_mol = ttk.Button(main,text=" % ",style=“1.TButton”)
btn_div = ttk.Button(main,text=’ ÷ ',style=“1.TButton”)
btn_7 = ttk.Button(main,text=" 7 ",style=‘1.TButton’)
btn_8 = ttk.Button(main,text=" 8 ",style=‘1.TButton’)
btn_9 = ttk.Button(main,text=" 9 ",style=“1.TButton”)
btn_times = ttk.Button(main,text=’ × ',style=“1.TButton”)
btn_4 = ttk.Button(main,text=" 4 ",style=‘1.TButton’)
btn_5 = ttk.Button(main,text=" 5 ",style=‘1.TButton’)
btn_6 = ttk.Button(main,text=" 6 ",style=“1.TButton”)
btn_minus = ttk.Button(main,text=’ - ',style=“1.TButton”)
btn_1 = ttk.Button(main,text=" 1 ",style=‘1.TButton’)
btn_2 = ttk.Button(main,text=" 2 ",style=‘1.TButton’)
btn_3 = ttk.Button(main,text=" 3 ",style=“1.TButton”)
btn_add = ttk.Button(main,text=’ + ',style=“1.TButton”)
btn_dot = ttk.Button(main,text=" . ", style=“1.TButton”)
btn_0 = ttk.Button(main,text=" 0 ",style=“1.TButton”)
btn_eq = ttk.Button(main,text=" + ",width=7)
ety.grid(column=0,row=0,columnspan=4,sticky=(E,W))
btn_ac.grid(row=1,column=0,sticky=(E,W))
btn_del.grid(row=1,column=1,sticky=(E,W))
btn_mol.grid(row=1,column=2,sticky=(E,W))
btn_div.grid(row=1,column=3,sticky=(E,W))
btn_7.grid(row=2,column=0,sticky=(E,W))
btn_8.grid(row=2,column=1,sticky=(E,W))
btn_9.grid(row=2,column=2,sticky=(E,W))
btn_times.grid(row=2,column=3,sticky=(E,W))
btn_4.grid(row=3,column=0,sticky=(E,W))
btn_5.grid(row=3,column=1,sticky=(E,W))
btn_6.grid(row=3,column=2,sticky=(E,W))
btn_minus.grid(row=3,column=3,sticky=(E,W))
btn_1.grid(row=4,column=0,sticky=(E,W))
btn_2.grid(row=4,column=1,sticky=(E,W))
btn_3.grid(row=4,column=2,sticky=(E,W))
btn_add.grid(row=4,column=3,sticky=(E,W))
btn_dot.grid(row=5,column=0,sticky=(E,W))
btn_0.grid(row=5,column=1,sticky=(E,W))
btn_eq.grid(row=5,column=2,columnspan=2,sticky=(E,W))
main.grid(column=0,row=0,sticky=(E,W,N,S))
main.columnconfigure(0,weight=1)
main.columnconfigure(1,weight=1)
main.columnconfigure(2,weight=1)
main.columnconfigure(3,weight=1)
root.rowconfigure(0,weight=1)
root.columnconfigure(0,weight=1)
root.mainloop()
总结
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。