在网易云课堂学习到了以下知识,云课堂地址:
用 python 和 tkinter 做简单的窗口视窗
作者莫烦的主页:https://morvanzhou.github.io/tutorials/
优酷视频主页:http://i.youku.com/i/UMTYyNjI2NDYw
第一个程序,学习生成窗口,按钮和Label:(参看视频:http://study.163.com/course/courseLearn.htm?courseId=1003216011#/learn/video?lessonId=1003649325&courseId=1003216011)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import tkinter as tk #导入tkinter,并重新命名为tk,以后调用就可以少写代码 mywindow=tk.Tk() #新建窗口mywindow mywindow.title('A Window named by TAHO') #给窗口命名为 A Window named by TAHO mywindow.geometry('300x600') #窗口大小,300为宽,600为高,单位为像素px var_label = tk.StringVar() #定义两个tk字符串变量 var_button = tk.StringVar() var_button.set('Try to Click Me') #初始化button按钮上的字符串 on_click=False #定义布尔变量 def click_me(): #定义函数 global on_click if on_click==False: on_click=True var_label.set('You just Clicked Me!') var_button.set('Click to hide') else: on_click=False var_label.set('') var_button.set('Try to Click Me') l=tk.Label(mywindow, textvariable=var_label,bg='yellow',font=('Arial',12),width=40, height=2) #建立一个Label,设定其属性 l.pack() #将Label显示到窗口中 b = tk.Button(mywindow, textvariable=var_button, width=40, height=2, command=click_me) #建立一个button,设定其属性 b.pack() #将button显示到窗口中 mywindow.mainloop() #循环刷新并显示窗口 |
运行结果:
第二个程序,学习文本输入框和文本框:(参考:http://study.163.com/course/courseLearn.htm?courseId=1003216011#/learn/video?lessonId=1003649327&courseId=1003216011)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import tkinter as tk #导入tkinter,并重新命名为tk,以后调用就可以少写代码 mywindow=tk.Tk() #新建窗口mywindow mywindow.title('A Window named by TAHO') #给窗口命名为 A Window named by TAHO mywindow.geometry('200x200') #窗口大小,300为宽,600为高,单位为像素px e=tk.Entry(mywindow, show=None) #新建文字输入框 # e=tk.Entry(mywindow, show='*') #输入密码时的隐藏办法 e.pack() #显示输入框e到窗口中 def insert_point(): #定义函数 var=e.get() t.insert('insert',var) #insert的意思就是插入到鼠标点击处,这是系统内置的 def insert_end(): #定义函数 var=e.get() t.insert('end',var) b1 = tk.Button(mywindow, text='inser to pointed', width=40, height=2, command=insert_point) #建立button1,设定其属性 b1.pack() #将button1显示到窗口中 b2 = tk.Button(mywindow, text='inser to end', width=40, height=2, command=insert_end) #建立button2,设定其属性 b2.pack() #将button2显示到窗口中 t=tk.Text(mywindow, height=2) #新建文本框 t.pack() #将文本框t显示到窗口中 mywindow.mainloop() #循环刷新并显示窗口 |
结果:
第三个程序,学习Listbox(参考:)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import tkinter as tk #导入tkinter,并重新命名为tk,以后调用就可以少写代码 mywindow=tk.Tk() #新建窗口mywindow mywindow.title('A Window named by TAHO') #给窗口命名为 A Window named by TAHO mywindow.geometry('200x300') #窗口大小,300为宽,600为高,单位为像素px var_label=tk.StringVar() #定义tk里的字符串 l=tk.Label(mywindow,textvariable=var_label, bg='yellow', width=4) #建立一个Label l.pack() #将Label显示到窗口中 def print_selected(): #定义函数 value =lb.get(lb.curselection()) #获得鼠标光标选中的值 var_label.set(value) b1 = tk.Button(mywindow, text='print selected', width=20, height=2, command=print_selected) #建立button1,设定其属性 b1.pack() #将button1显示到窗口中 var_listbox=tk.StringVar() #定义一个listbox var_listbox.set((11,22,33,44)) #建立listbox初始值 lb = tk.Listbox(mywindow,listvariable=var_listbox) lb.pack() list_items=[1,2,3,4] #建立数组 for item in list_items: lb.insert('end',item) #用循环插入数组中的项 lb.insert(1,'first') #在第2行插入first,按索引的位置Index来插入 lb.insert(2,'second') #在第3行插入first lb.delete(2) #删除索引2处的值 mywindow.mainloop() #循环刷新并显示窗口 |
运行结果:
第四个程序,学习RadioButton单选框,(参看:http://study.163.com/course/courseLearn.htm?courseId=1003216011#/learn/video?lessonId=1003651316&courseId=1003216011)
程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import tkinter as tk #导入tkinter,并重新命名为tk,以后调用就可以少写代码 mywindow=tk.Tk() #新建窗口mywindow mywindow.title('A Window named by TAHO') #给窗口命名为 A Window named by TAHO mywindow.geometry('200x200') #窗口大小,300为宽,600为高,单位为像素px var_label=tk.StringVar() #定义tk里的字符串 l=tk.Label(mywindow,text='empty', bg='lightblue', width=20) #建立一个Label l.pack() #将Label显示到窗口中 def print_selection(): #定义函数 l.config(text='You have selected '+var_label.get()) #生成字符串,用了+号连接 r1=tk.Radiobutton(mywindow, text='Option A', variable=var_label, value='A', command=print_selection) #生成第1个单选框 r1.pack() r2=tk.Radiobutton(mywindow, text='Option B', variable=var_label, value='B', command=print_selection) #生成第2个单选框 r2.pack() r3=tk.Radiobutton(mywindow, text='Option C', variable=var_label, value='C', command=print_selection) #生成第3个单选框 r3.pack() mywindow.mainloop() #循环刷新并显示窗口 |
运行结果:
第五个程序,学习拖动条(Scale),(参看:)
程序代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import tkinter as tk #导入tkinter,并重新命名为tk,以后调用就可以少写代码 mywindow=tk.Tk() #新建窗口mywindow mywindow.title('A Window named by TAHO') #给窗口命名为 A Window named by TAHO mywindow.geometry('200x200') #窗口大小,300为宽,600为高,单位为像素px l=tk.Label(mywindow,text='empty', bg='green', width=20) #建立一个Label l.pack() #将Label显示到窗口中 def print_selection(v): #定义函数 l.config(text='You have selected '+ v) #生成字符串,用了+号连接 s = tk.Scale(mywindow, label='I am a bar~', from_=4, to=10, orient=tk.HORIZONTAL, length=200, showvalu=False, tickinterval=2, resolution=0.01, command=print_selection) #orient是横向竖向,showvalue是要不要在bar上显示数字,#tickinterval是标尺的最小分度,resolution=0.01表示保留两位小数 s.pack() mywindow.mainloop() #循环刷新并显示窗口 |
运行结果:
附录:
本文目录
Tkinter 组件
Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。
目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:
控件 | 描述 |
---|---|
Button | 按钮控件;在程序中显示按钮。 |
Canvas | 画布控件;显示图形元素如线条或文本 |
Checkbutton | 多选框控件;用于在程序中提供多项选择框 |
Entry | 输入控件;用于显示简单的文本内容 |
Frame | 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 |
Label | 标签控件;可以显示文本和位图 |
Listbox | 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户 |
Menubutton | 菜单按钮控件,由于显示菜单项。 |
Menu | 菜单控件;显示菜单栏,下拉菜单和弹出菜单 |
Message | 消息控件;用来显示多行文本,与label比较类似 |
Radiobutton | 单选按钮控件;显示一个单选的按钮状态 |
Scale | 范围控件;显示一个数值刻度,为输出限定范围的数字区间 |
Scrollbar | 滚动条控件,当内容超过可视化区域时使用,如列表框。. |
Text | 文本控件;用于显示多行文本 |
Toplevel | 容器控件;用来提供一个单独的对话框,和Frame比较类似 |
Spinbox | 输入控件;与Entry类似,但是可以指定输入范围值 |
PanedWindow | PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。 |
LabelFrame | labelframe 是一个简单的容器控件。常用与复杂的窗口布局。 |
tkMessageBox | 用于显示你应用程序的消息框。 |
标准属性
标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。
属性 | 描述 |
Dimension | 控件大小; |
Color | 控件颜色; |
Font | 控件字体; |
Anchor | 锚点; |
Relief | 控件样式; |
Bitmap | 位图; |
Cursor | 光标; |
几何管理
Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置
几何方法 | 描述 |
pack() | 包装; |
grid() | 网格; |
place() | 位置; |