Tkinter 编程:
TkInter是标准的Python GUI库。的Python与Tkinter的结合提供了一个快速和容易的方法来创建GUI应用程序。 Tkinter的提供了一个强大的面向对象的接口Tk的GUI工具包.
使用Tkinter创建一个GUI应用程序是一件容易的事。所有你需要做的是执行以下步骤:
-
导入Tkinter模块.
-
创建GUI应用程序的主窗口.
-
添加上述部件之一或更多的GUI应用程序.
-
进入主事件循环的由用户触发每个事件响应.
先来一个简单的,只有一个窗口,好歹实现了图形化~
#!/usr/bin/env python
#filename: mytk.py
from Tkinter import *
top = Tk()
mainloop()
有点太简单? 我们在加入一点文字,现实那段大名鼎鼎的hello workd!
这里的Label标签组件,并且label 的第一个参数是它的父窗口或者框架(label = Label(top, text = "hello world", 比如我们这行的父窗口就是top),其他的控件也是如此,如果只有一个窗口的话,不加也是可以显示的,但显然这不是一个良好的习惯,可以用来显示文本或者图片,注意要打包 pack()
作用是
下面是pack可能的选项列表:
-
expand: 当设置为true,部件扩展填充,否则不能使用任何部件的母公司空间.
-
fill: 确定是否部件填补打包机分配任何额外的空间,或保持其自己的最小尺寸:无(默认)和X(只填写水平)Y(只填写垂直),或两者兼而有之(填充横向和纵向).
-
side: 决定哪方父widget包对TOP(默认),下,左,或右.
不打包的后果是这个组件不会在你的窗口上显示
#!/usr/bin/env python
#filename: mytk.py
from Tkinter import *
top = Tk()
label = Label(top, text = "hello world")
label.pack(side = left)
mainloop()
then 再我们来一个复杂点的, 这里我们添加了Button控件,而且用到的是 grid(), 而非pack(), 由于pack()只能下 左 或者右, 这里控件太多........
注意到button里边有一个command参数, = quit 这是按下button之后执行的事件, 我们前边定义了quit() 函数,执行sys.exit()
#!/usr/bin/env python
#coding=utf-8
#filename: mytk.py
import sys
def quit():
sys.exit()
from Tkinter import *
top = Tk()
label = Label(top, text = "用户登录") #文本显示用户登录
label.grid(column = 2, row = 0) #文本处在第0行第二列
usr = Label(top, text = "用户名") #文本显示登录名
usr.grid(column = 1, row = 1)
usrname = Entry(top)
usrname.grid(column = 2, row = 1)
paswd = Label(top, text = "密码")
paswd.grid(column = 1, row = 2)
password = Entry(top)
password.grid(column = 2, row = 2)
quit = Button(top, text = "quit", command = quit)
quit.grid(column = 2, row = 3)
mainloop()
额, 似乎忘了点什么,只有退出没有登录~ 而且其他部分中文,只有退出英文,显得有点突兀
再mainloop() 前边加上
login = Button(top, text = "登录")
login.grid(column = 1, row = 3)
然后把这句改为
quit = Button(top, text = "quit", command = quit)
quit = Button(top, text = "退出", command = quit)
看其来完整了~界面不太友好.....怎么把登录和退出连一起呢~ 大家可以思考下