单元一 Python Tkinter 初体验
1.安装pycharm
步骤1:从官网下载pycharm
打开官网下载连接https://www.jetbrains.com/pycharm/download/#section=windows,如下图,我们选择community版本,点击Download开始下载
步骤2:开始安装
等待下载完成,双击打开安装程序在安装窗口中单击“Next”按钮,如下图所示
单击“Browse”按钮,选择安装路径,完成后,单击“Next”按钮创建,如下图所示。
勾选复选框,选择需要安装的组件,单击“Next”按钮,如下图
点击“Install”安装开始
等待下载安装完成之后,单击“Finish”按钮,如下图所示。
点击“OK”,如下图:
选择你喜欢的主题背景,如下图,选择好之后,点击“Next”。
到此pycharm安装成功了。
任务1.2创建第一个tkinter程序
步骤1:打开pycharm,然后创建新的项目目录
选择好项目路径后,点击“create”创建项目和虚拟环境
出现如下图所示说明项目已经创建成功了,但是要等到Python环境加载结束后才能开始。
步骤2:新建一个py文件,文件名为first_gui.py,如下图
出现下图说明项目创建成功了
步骤3:编写第一个tkinter程序
tkinter是Python自带的GUI库,可以实现GUI编程,将脚本或者代码封装成一个GUI或者EXE可执行文件,方便日后使用。Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows ,Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
tkinter模块的导入
import tkinter as tk
注意:python3中,使用的库名为tkinter 首字母为小写t
接下来,我们来创建我们的第一个tkinter程序,首先导入包,并且进行实例化。可以设置窗口的名字,尺寸大小等,用mainloop进行组件的刷新。这就是我们的第一个gui程序了,尽管他看起来是这么单调。
代码如下
import tkinter as tk # 导包
window=tk.Tk() #实例化窗口
window.title('my window') #设置窗口的标题
window.geometry('200x300') #设置窗口的尺寸
window.mainloop() #mainloop()就是一旦检测到事件,就刷新组件。你可以理解为mainloop会去不断的刷新所有的组件
执行结果:
任务1.3向窗口中添加控件
任务描述
本任务里面主要以下任务:
1、案例1.1——身份展示器
2、案例1.2——文本颜色更改器
3、案例1.3——图像显示
任务实施
了解常用控件
在Tkinter中控件的使用都是基于如下的形式的:控件类型(根对象, [属性列表]),在控件定义好之后就需要将其添加到主界面上去。通常使用的布局方法便是pack()函数,没有调用pack()函数控件是不能在界面上显示的。
在本任务中,我们将尝试向窗口中添加控件,首先下面列出了常用的一些控件,供大家参考
常用控件如下表:
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 | 用于显示你应用程序的消息框。 |
案例1.1——身份展示器
全部代码
# 导包
import tkinter as tk
# 实例化窗口
window=tk.Tk()
# 设置窗口的标题
window.title('My window')
# 设置窗口的尺寸
window.geometry('200x300')
# 字符串变量
var=tk.StringVar()
# 变量赋值
var.set('Guess who I am?')
# 设置一个标签控件,
l=tk.Label(window,textvariable=var,bg='pink',font=('Arial',12),width=30,height=2)
# 将标签对齐放置
l.pack()
# 定义一个False的变量
on_hit=False
#点击按钮的事件,当点击按钮的时候,调用此函数。
def hit_me():
#引用全局变量
global on_hit
if on_hit==False:
on_hit=True
var.set('national defense handsome boy')
else:
on_hit=False
var.set('')
# 设置按钮,并设置文本。command关联一个函数,当按钮被点击时,调用函数。
b=tk.Button(window,text='hit me',width=15,height=2,command=hit_me)
#将标签对齐放置
b.pack()
#循环显示
window.mainloop()
案例1.2 ——文本颜色更改器
全部代码
# 导入模块
import tkinter as tk
# 实例化窗口
win = tk.Tk()
# 定义标题
win.title("Python GUI")
# 设置窗口大小
win.geometry("400x400")
aLabel = tk.Label(win, text="A Label",font=('Arial', 12)) # 创建一个标签, text:显示标签的内容
aLabel.pack()
def clickMe(): # 当acction被点击时,该函数则生效
action.configure(text="** Thanks! **") # 设置button显示的内容
aLabel.configure(foreground='red') # 设置aLabel的字体颜色
action = tk.Button(win, text="Hit Me!", command=clickMe) # 创建一个按钮, text:显示按钮上面显示的文字, command:当这个按钮被点击之后会调用command函数
action.pack()
win.mainloop() # 当调用mainloop()时,窗口才会显示出来
案例1.3 ——图像展示器
全部代码
import tkinter as tk
# 实例化窗口
window=tk.Tk()
# 初始化图片
logo = tk.PhotoImage(file="1.gif")
# 定义函数
def img():
tk.Label(window, image=logo).pack()
btn = tk.Button(window,text="lao",command = img).pack()
window.mainloop()