菜鸟IT的博客 >> Python
颜色计算 | 颜色亮度如何计算出来 | 给文本的背景颜色随机显示的同时让字体的亮度对应颜色高亮反差显示 | 让字体颜色亮度在不同的文本背景颜色里自动调整
# 一定要定义编码
# -*- coding: UTF-8 -*-
# 【1】导入库↓顺便给tkinter库取个别名为tk,
# 好处是调用的时候更方便调用。
import tkinter as tk
# 新导入库,用于字体的显示效果
import tkinter.font as ziti1
# 新导入库,关于随机数
import random
# --------自定义按钮对应的函数--开始--------------- #
######
# --------自定义按钮对应的函数--结束--------------- #
# 【1】创建软件窗口实体,窗体
chuangkou1=tk.Tk()
# 【2】软件界面顶部显示名称以及版本号
chuangkou1.title("文本背景颜色和文字颜色反差显示+颜色计算")
# 【3】软件的长宽、在当前桌面屏幕的左边距、顶上边距
# 定义窗口自身宽度
ck1w=400
# 定义窗口自身高度
ck1h=300
# 获取屏幕宽度
pmw=chuangkou1.winfo_screenwidth()
# 获取屏幕高度
pmh=chuangkou1.winfo_screenheight()
# 计算水平方向的起点位置坐标
x1=pmw/2-ck1w/2
# 计算垂直方向的起点位置坐标
y1=pmh/2-ck1h/2
# 设置窗体所在屏幕的坐标位置
chuangkou1.geometry("%dx%d+%d+%d"%(ck1w,ck1h,x1,y1))
# 【4】软件界面窗体的背景属性,背景颜色改成绿色,绿色的颜色属性值
chuangkou1["background"]="#ffffcc"
# 提前创建字体属性,设置字体大小为20,并设置字体类型,比如微软雅黑,
# 并把字体加粗,
zt666=ziti1.Font(size=15,family="黑体",weight=ziti1.BOLD)
zt777=ziti1.Font(size=13,family="楷体")
# 添加1个序列数组,并循环生成lable文本
list1=["张三","编程","python","改造","生活"]
for txt1 in list1:
# 采用推导法生成随机的颜色序列数组
bgYanSeShuZu=[random.randrange(256) for x in range(3)]
bgYanSe="#%02x%02x%02x" % tuple(bgYanSeShuZu)
# 计算颜色亮度公式
YanSeLiangDu=int(0.3*bgYanSeShuZu[0]+0.6*bgYanSeShuZu[1]+0.1*bgYanSeShuZu[2])
if (YanSeLiangDu<120):
WenZiYanSe = "White"
else:
WenZiYanSe = "black"
print(YanSeLiangDu)
# 下面就是开始循环创建文本标签,并对应的复制随机背景颜色
lbl1=tk.Label(chuangkou1,text=txt1,font=zt777,bg=bgYanSe,fg=WenZiYanSe)
lbl1.pack(fill="x",padx=10,pady=5)
# ------末尾必须放死循环代码---分割线------ #
# 【End.1】持续显示软件界面,相当于死循环,↓
# 【End.1】这个窗体的作用是监听这个界面发生的一切事件,包括鼠标点击动作。
# 【End.1】下面这个死循环代码必须放在最后面。
chuangkou1.mainloop()
菜鸟IT博客[2021.11.17-15:58] 访问:318