在网易云课堂学习到了以下知识,云课堂地址:
用 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

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

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(参考:)

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

程序:

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),(参看:)

程序代码:

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() 位置;

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注