Python⼜把GUI界⾯攻下了,这个界⾯真漂亮啊!
个性特质
0.引⾔
学Python这么久了,⼀直想做个界⾯出来,最近发现Python有个内置库tkinter,利⽤它可以很轻松做出⼀些简易的UI界⾯,⾸先来看Python官⽅对Tkinter的说明:
The tkinter package (“Tk interface”) is the standard Python interface
to the Tk GUI toolkit. Both Tk and tkinter are available on most Unix
platforms, as well as on Windows systems.
从上⾯描述中我们不难看出,不管你是 Mac OS 系统,还是 Windows 系统,它都可以⽣成相对应的操作界⾯,这就是所谓的跨平台。1.调⽤关系说明
其原理就是我们使⽤ Python代码去调⽤ Tkinter, Tkinter 已经封装了访问TK的接⼝,这个接⼝是⼀个图形库,⽀持多跨平台操作系统,进⽽通过它,我们就可以调⽤我们系统本⾝的GUI接⼝了。
碘酊和碘伏2.环境
操作系统:Windows / Linux / Mac OS
Python版本:3.6.6
3.⼩试⽜⼑
有了概念并了解原理之后,接下来就⼩试⽜⼑⼀下~
import tkinter
# 定义⼀个窗体
top = tkinter.Tk()
# 将其加⼊主循环
top.mainloop()
运⾏⼀下,biu~,三⾏代码就把⼀个窗⼝弹出来了,有没有很神奇~ 4.中试⽜⼑
接下来我们要来点复杂的:
import tkinter as tk
ssagebox as mbox
# 定义MainUI类表⽰应⽤/窗⼝,继承Frame类
class MainUI(tk.Frame):
# Application构造函数,master为窗⼝的⽗控件
def__init__(lf, master = None):
# 初始化Application的Frame部分
tk.Frame.__init__(lf, master)
# 显⽰窗⼝,并使⽤grid布局
战胜困难的名言
虎井沉城
# 创建控件
# 创建控件
def createWidgets(lf):
# 创建⼀个标签,输出要显⽰的内容(更多Python学习资料加群631441315)
lf.firstLabel = tk.Label(lf,text="「⼈⼈都是Pythonista」专注Python领域,做最专业的Python星球。")
# 设定使⽤grid布局
id()
# 创建⼀个按钮,⽤来触发answer⽅法
lf.clickButton = tk.Button(lf,text="点⼀下瞧瞧?",command=lf.answer)
# 设定使⽤grid布局
id()
def answer(lf):
小孩百日宴# 我们通过 messagebox 来显⽰⼀个提⽰框
mbox.showinfo("「⼈⼈都是Pythonista」",'''
这是⼀个专注Python的星球,我们提供「从零单排」、「实战项⽬」、「⼤航海」、「技术沙龙」、「技术分享」、「⼤⼚内推」等系列供你选择及学习,当然也会有周边技术沿伸。
本星球会不定期开展各类实战项⽬,阶段性组织线上技术沙龙、分享等;对于职业发展路线不明确的,我们会邀请到⼀些⼤⼚hr及⾼级开发、经理等给⼤家解惑。
加⼊我们,和千⼈⼀起玩Python,To be a Pythonista!
''')
# 创建⼀个MainUI对象
app = MainUI()纪实摄影大师
# 设置窗⼝标题
app.master.title('「⼈⼈都是Pythonista」')
# 设置窗体⼤⼩
ry('400x100')
# 主循环开始
app.mainloop()
在这⾥:
1. 我们导⼊了 tkinter 的相关模块
考研数学一国家线2. 定义了初始化函数,通过 grid() ⽅法将我们的组件传给⽗容器
3. ⾃定义⼀个创建组件的⽅法,我们创建了⼀个标签和⼀个按钮,这个按钮被点击后就会触发 answer这个⽅法
4. 我们通过 messagebox 来显⽰⼀个提⽰框
5. 实例化我们的 APP,然后通过主线程来监听我们的界⾯操作
运⾏后如下:
张家界一日游攻略
5.总结
想要做出漂亮的UI界⾯,还是需要深⼊地学习下Tkinter这个模块。上⽂中的我们只⽤到了框架、按钮、标签、⽂本这四种控件,⽽在Tkinter中给我们提供了15种控件供⼤家使⽤。
此外Tkinter控件布局有三种⽅式:包装pack()、⽹格grid()、位置place(),本⽂中选⽤了grid,⼤家也可以逐⼀尝试下有什么区别,期待⼤家的⼤试⽜⼑~