目前我们所学的知识:
python语法:
创建函数、数学计算
常见类型:
文本与整数、浮点数的类型互相转换
GUI类型:
- Label用于提示和输出,以及设置Label文本的方法
- Entry用于输入,提取Entry输入的方法,
- Button用于触发动作,将Button动作关联于函数的方法。
编程思考方式:
软件互动模式:输入,按钮,计算,输出
我们将用一个个的案例,逐步丰富我们的知识框架。从本节课的《进制转换》开始。
我们知道计算机内部使用的是二进制,一个数字在不同进位制下的表示方法不同。例如:
重点说一下进制转换的知识。
常见类型功能(int):进制转换
二进制:bin(num)
八进制:oct(num)
十六进制:hex(num)
这三个函数,输入均为整数(int),输出均为字符串。
看了第2节教程的朋友,如果学过初中数学,能够理解行列坐标,即使以前没有接触过编程,也能够比较容易地设计出页面的布局。
我们这里扩展两个GUI类型的知识点:
GUI类型功能(通用)
1、匿名组件
如果我们不打算在程序中访问一个组件,则无须为其命名。
可以在创建后直接布局,一句代码完整一个组件的创建:
Label(root, text="十进制:").grid(column=1, row=1)
2、组件的颜色
组件有两个颜色属性:
- 前景色(foreground或fg)
- 背景色(background或bg)
颜色值的表示方法,也有两种:RGB值法与颜色名法。
- RGB值法:#开头的6位16进制,红、绿、蓝色的成分各占两位,从00到FF
- 颜色名法:英语的颜色名,比如orage, yellow, pink,等等
配色的位置,也有两种方法。
- 一种是在创建时(主窗口背景色不能用此法):Label(root, text="二进制:", bg='#00ffff').grid(column=1, row=2)
- 一种是在创建后:lbBin= Label(root, fg='orange')
# 参考资料,本课程中所有的GUI程序,都必须有这一句话
from tkinter import *
# 函数定义语句,定义了计算过程
def calculate():
# get方法获得的对象是文本类型,必须转换为整数类型(int)才能用于进制转换
value = int(entry.get())
# 给标签的显示内容(text)属性赋值
# 三个函数,分别转换为二进制(0b开头)、八进制(0o开头)、十六进制(0x开头)
lbBin['text']= bin(value)
lbOct['text']= oct(value)
lbHex['text']= hex(value)
# root 是主窗口
root = Tk()
# 设置主窗口颜色只能在创建之后
root['bg']= 'pink'
# 给主窗口定一个标题
root.title("进制转换")
# 纯提示用的标签(类型Label),属于root窗口,不必起名字,定义后直接布局
Label(root, text="十进制:").grid(column=1, row=1)
# 输入十进制处,单行文本输入框(类型Entry),它属于root窗口
entry = Entry(root)
entry.grid(column=2, row=1)
# 纯提示用的标签(类型Label),属于root窗口,不必起名字,定义后直接布局
# 背景色属性:bg
# 颜色设置方法1:#RBG的值
Label(root, text="二进制:", bg='#00ffff').grid(column=1, row=2)
# 二进制输出用的标签(类型Label),属于root窗口
# 前景色属性:fg
# 颜色设置方法2:颜色名
lbBin= Label(root, fg='orange')
lbBin.grid(column=2, row=2)
# 纯提示用的标签(类型Label),属于root窗口,不必起名字,定义后直接布局
Label(root, text="八进制:").grid(column=1, row=3)
# 八进制输出用的标签(类型Label),属于root窗口
lbOct= Label(root)
# 有名字的组件,可以在创建之后再添加颜色
lbOct['bg']='pink'
lbOct.grid(column=2, row=3)
# 纯提示用的标签(类型Label),属于root窗口,不必起名字,定义后直接布局
# 前景色可以直接使用全称foreground
Label(root, text="十六进制:", foreground="#ff7f00").grid(column=1, row=4)
# 十六进制输出用的标签(类型Label),属于root窗口
# 背景色也可以直接使用全称background
lbHex= Label(root, background='#d0d0d0')
lbHex.grid(column=2, row=4)
# 按钮(类型Button),属于root窗口,显示文字是“计算”,按下去动作(command)是函数calculate
# 无须起名,因为后面不用访问按钮本身
Button(root, text="计算", command=calculate).grid(column=3, row=5)
# 这一句是运行窗口
root.mainloop()
小结
1、整数转化为任意进制的方法
2、创建组件的简化方法
3、组件的颜色设置方法
本节作业
1、在进制转换软件中,不做输入,直接按计算按钮,看看出现什么效果
2、设计一个圆形面积计算器,输入半径,计算面积
资料:各种可用的颜色
更多推荐
零基础python入门GUI编程:2-1 进制转换
发布评论