Python内置的GUI——Tkinter(1)

Python作为近些年来最为受欢迎的脚本语言之一,他的相关拓展应用也是遍地开花,最近在学习Python内置的GUI(图形开发界面的库)——Tkinter,在这里写下学习笔记作为记录和备份,如有错误,也希望各位能够点出指正。

实现简单的图形界面

import tkinter as tk
on_hit = False#标记,这是一个全局变量#
window = tk.Tk()#生成GUI框架#
var = tk.StringVar()#申请一个string类型的全局变量#

window.title('测试')
window.geometry('300x200')
l = tk.Label(window,textvariable = var,bg = 'green',font =('Arial',12),width = 15,heigh = 2)#类似于文本数据的控制显示#
l.pack()
def Hit_it():
    global on_hit
    if on_hit == False:
        on_hit = True
        var.set('Hit Online')
    else:
        on_hit = False
        var.set('')
b = tk.Button(window,text = 'Hit_it',command = Hit_it)
b.pack()
window.mainloop()

以上是一个例子,其中使用到了Tkinter的一些基本方法,下面一一介绍之
import:导入一个模块指令,Python基本操作
.Tk:Tkinter的基础,就和C++中想要使用对象必先声明对象,作用是声明GUI框架
.StringVar:申请一个String类型的全局变量
.title:存储的是String类型数据,指明窗口的标题
.geometry:设置窗口大小,格式是长x宽,乘运算符必须使用字母‘x’,不能使用‘*’
.Label:标签控件;可以显示文本和位图,也就是说可以让文本或图片置于其上,可以简单理解为底板,包含的参数有很多,第一个参数是指定在那个模块中插入标签,textvariable是text的特殊形式,接受一个变量,bg是标签背景色,输入string类型数据,font显示text/textvariabke内容的字体格式,width,height是标签的长宽属性
.pack:属于Tkinter的几何管理,让所属组件放在窗口的那个位置,缺省值状态下为在上一个pack模块的下面,无间隔
def:声明函数的基本操作,和函数名要有空格隔开,python的缩进要求极为重要,可以说正是因为以前接触过python,才让我练出了良好的代码缩进格式,之后的博文会有所提到
global:全局变量关键字,提醒编译器在本关键字声明的变量是全局变量,注意不要搞错
.Button:按钮控件;在程序中显示按钮,包含的参数很多,第一个参数是指定在哪一个模块中插入按钮,第二个要给按钮的提示信息是什么,width,height可以设置为缺省值,系统使用默认值,command参数接收响应事件,就像在PHP中使用JavaScript一样,每次有事件发生,由谁来处理响应事件
.mainloop:回滚,类似于while(1)循环,因为我们界面每次响应事件后都需要刷新状态才可以展示出效果,否则代码只是一遍过就结束了
Python内置的GUI——Tkinter(1)_第1张图片Python内置的GUI——Tkinter(1)_第2张图片
点击一次Hit_it按钮会改变Label的内容,而这些内容都是由command指向的函数Hit_it完成的

稍微复杂点的输入和输出

import tkinter as tk
on_hit = False#标记,这是一个全局变量#
window = tk.Tk()#生成GUI框架#
var = tk.StringVar()#申请一个string类型的#

window.title('测试')
window.geometry('300x200')
e = tk.Entry(window,show = '*')
e.pack()
t = tk.Text(window,height = 2)
def Insert_word():
    var = e.get()
    t.insert('insert',var)
def Insert_end():
    var = e.get()
    t.insert('end',var)

b = tk.Button(window,text = 'Insert_word',command = Insert_word)
b.pack()
b1 = tk.Button(window,text = 'Insert_end',command = Insert_end)
b1.pack()
t.pack()
window.mainloop()

Python内置的GUI——Tkinter(1)_第3张图片
这里引入了Entry和Text方法的使用,实现了用密文的方式输入数据并以明文的形式输出数据,简单的模拟了在网页中需要登录的场景,并提供了在尾部插入数据和在指定光标指针位置插入数据,拓展开来,可以和数据库进行连接,实现真正的登录界面。
这里对新加入的两个方法进行说明
Entry:输入控件;用于显示简单的文本内容,将Entry传给声明的e中,此时e就有了get方法实现对文本数据的接受
Text:文本控件;用于显示多行文本,Text的insert提供了多种插入方式,本次使用的是end和insert方式,insert方法传递两个参数,第一个是插入方式,第二个是插入的数据
输入方式是密文形式是由Entry中的Show参数实现的,给Show传输一个string类型的数据,每次键入数据都会在屏幕中显示Show所指的string数据,在C中,密文输入控制是交由printf来控制的,printf很强大,之后博文中会讲到printf。
总结使用Tkinter的流程:
1、导入 Tkinter 模块
2、创建控件
3、指定这个控件的 master, 即这个控件属于哪一个//master在我的例子中是window
4、告诉 GM(geometry manager) 有一个控件产生了。

你可能感兴趣的:(学习心得)