python图形界面开发tkinter_python之图形界面GUI开发 Tkinter 2014-4-7

1.导入Tkinter 可以使用以下三种方法

(1)from Tkinter import *

#导入Tkinter

(2)import Tkinter

Tkinter.methodA

使用 Tkinter.methodA这样就不会污染其他命名空间

(3)import Tkinter as Tk

Tk.methodA

重新定义了一个Tk 使用 Tk.methodA这样也就不会污染其他命名空间

作为GUI需要考虑3个问题

屏幕上显示什么样的界面

图形怎么编排坐标

如何人机交互(事件绑定)

from Tkinter import *

root=Tk()

mylabel=Label(root,text="I am a label widget")

mybutton=Button(root,text="I am a button")

mylabel.pack()

mybutton.pack()

root.mainloop()

mylabel=Label(root,text="I am a label widget")

mylabel.pack()

等同于Label(root,text="I am a label widget").pack()

如果其他地方不需要调用或者修改 就不用赋值给变量(mylabel)

Tkinter核心组件

部件描述

Button一个简单的按钮,用于执行命令或其他操作。

Canvas结构化图形,该部件可用于绘制图形或图表、创建图形编辑器以及实现定制部件。

Checkbutton代表一个可拥有两个不同值的变量,点击按钮可以在两个值之间进行切换。

Entry一个文本输入框。

Frame一个容器部件。该框架可以拥有一个边框和背景,当创建一个程序的程序或对话布局时可用于集合其他部件

Label显示一个文本或图像。

Listbox显示一个替换列表。该列表框可被设置为接收单选框或清单行为。

Menu一个菜单面板。用于实现下拉和弹出菜单项。

Menubutton一个菜单按钮。用于实现下拉菜单项。

Message显示一个文本。类似于标签部件,但可以将文本自动绑定为给定的宽度或宽高比。

Radiobutton代表可拥有多个值的变量的一个值。点击按钮可使变量获取该值并同时清除所有与该变量相关的复选框按钮

Scale允许你通过拖拽"滑块"来设置数值

Scrollbar用于画板、输入框、列表框和文本部件的标准滚动条

Text格式化文本显示。允许你使用各种样式和属性显示或编辑文本。同时还支持嵌入图像或窗口。

Toplevel作为一个分割的顶层窗口显示的容器部件

调用核心组件

组件名(父窗口,参数)

from Tkinter import *

root=Tk()

#Label(root, text=" Enter your Password:").pack()

#Button(root, text="Search").pack()

#Checkbutton(root, text='RememberMe',variable='v', value=True).pack()

#Entry(root, width=30).pack()

Frame(root,width=500,height=200).pack()

root.mainloop()

图形布局有三种方法

pack()简单布局

grid()常用 类似于表格布局 网格布局

place() 最不常用 但是可以用于绝对定位

pack():

from Tkinter import *

root = Tk()

Button(root, text="A").pack(side=LEFT, expand=YES, fill=Y)

Button(root, text="B").pack(side=TOP, expand=YES, fill=BOTH)

Button(root, text="C").pack(side=RIGHT, expand=YES, fill=NONE, anchor=NE)

Button(root, text="D").pack(side=LEFT, expand=NO, fill=Y)

Button(root, text="E").pack(side=TOP, expand=NO, fill=BOTH)

Button(root, text="F").pack(side=RIGHT, expand=NO, fill=NONE)

Button(root, text="G").pack(side=BOTTOM, expand=YES, fill=Y)

Button(root, text="H").pack(side=TOP, expand=NO, fill=BOTH)

Button(root, text="I").pack(side=RIGHT, expand=NO)

Button(root, text="J").pack(anchor=SE)

root.mainloop()

side=TOP, anchor=SE

side='top', anchor='se'

大写 或者小写加引号等价的

pack()使用情况:

需要填满 或者 挨个排列布局的话会用到

python图形界面开发tkinter_python之图形界面GUI开发 Tkinter 2014-4-7_第1张图片

grid()最常用

以下代码建立一个登陆框

username:

password:

login

from Tkinter import *

root = Tk()

Label(root, text="Username").grid(row=0, sticky=W)

Label(root, text="Password").grid(row=1, sticky=W)

Entry(root).grid(row=0, column=1, sticky=E)

Entry(root).grid(row=1, column=1, sticky=E)

Button(root, text="Login").grid(row=2, column=1, sticky=E)

root.mainloop()

#sticky=W表示 从西边开始排列(左手边)

#column 表示从左到右排列

#row从上到下排序 如无排列则为空 依然紧挨着(column=1,另外一个column为3 则为3的会紧挨着为1的 因为没有2)

python图形界面开发tkinter_python之图形界面GUI开发 Tkinter 2014-4-7_第2张图片

#一个搜索框代码

from Tkinter import *

top = Tk()

top.title('Find & Replace')

Label(top,text="Find:").grid(row=0, column=0, sticky='e')

Entry(top).grid(row=0,column=1,padx=2,pady=2,sticky='we',columnspan=9)

Label(top, text="Replace:").grid(row=1, column=0, sticky='e')

Entry(top).grid(row=1,column=1,padx=2,pady=2,sticky='we',columnspan=9)

Button(top,text="Find").grid(row=0,column=10,sticky='ew',padx=2,pady=2)

Button(top,text="Find All").grid(row=1,column=10,sticky='ew',padx=2)

Button(top,text="Replace").grid(row=2,column=10,sticky='ew',padx=2)

Button(top,text="Replace All").grid(row=3,column=10,sticky='ew',padx=2)

Checkbutton(top,text='Match Whole word only').grid(row=2,column=1,columnspan=4,sticky='w')

Checkbutton(top,text='Match Case').grid(row=3,column=1,columnspan=4,sticky='w')

Checkbutton(top,text='Wrap around').grid(row=4,column=1,columnspan=4,sticky='w')

Label(top,text="Direction:").grid(row=2,column=6,sticky='w')

Radiobutton(top,text='Up',value=1).grid(row=3,column=6,columnspan=6,sticky='w')

Radiobutton(top,text='Down',value=2).grid(row=3,column=7,columnspan=2,sticky='w')

top.mainloop()

python图形界面开发tkinter_python之图形界面GUI开发 Tkinter 2014-4-7_第3张图片

你可能感兴趣的:(python图形界面开发tkinter_python之图形界面GUI开发 Tkinter 2014-4-7)