python使用 tkinter 生成随机颜色
先看效果:
只要不停点击底部的按钮,每次都会生成新的颜色。炫酷啊。
import random
import tkinter
import tkinter.messagebox
from tkinter import Button
# todo
"""
1. 设置一个按钮,来让用户选择是否显示颜色值
2. 把按钮换成 Label, 用户可以复制颜色。
3. 换一个版本,自动生成随机颜色, 每2秒自动更换颜色。
"""
win = tkinter.Tk()
win.title("Daily Tools")
win.geometry("1250x850+300+200")
# 使用一个 frame, 后面用来清理其他的组件
frame = tkinter.Frame(win)
frame.pack(side="top", expand=True, fill="both")
colors = ['red', 'green', 'blue', ' yellow', 'orange', 'white', 'cyan', 'purple']
# 默认的调用函数。 测试使用的函数。
def what_todo():
print("ok")
# tkinter.messagebox.showinfo(title='Hey', message='Nice!')
def make_button(button_text="这是一个按钮", button_function=what_todo): #
# 只有 button_text 和 button_function 是可变参数,其他都设置为一样的。多个按钮,样式一致,整整齐齐。
color_text = "#" + ("%06x" % random.randint(0, 16777215))
b = Button(frame,
text=color_text, # button_text,
# 生成随机颜色,这里有很多种写法。 # https://stackoverflow.com/questions/19812288/how-to-make-the-foreground-and-background-colors-of-a-button-in-tkinter-random
# bg=random.choice(colors),
bg=color_text, #
command=button_function,
fg="black",
font=('黑体', 15),
width=40,
height=8,
wraplength=0, # 控制多少行来显示文本 默认是 0 可以修改为 3 多行显示。
justify="center", # 字体的对齐方向
anchor="center", # 这个 pos 控制的是文本内容在 label 框内的朝向
relief="ridge", # 边框效果 raised ridge
)
print("cur color: ", color_text)
return b
# 生成3*3=9个随机颜色
def make_9_buttons():
for i in range(3):
for j in range(3):
bb = make_button()
bb.grid(row=i, column=j)
# 生成新的颜色。
def generate_new_colors():
for widget in frame.winfo_children():
widget.destroy() # 1. clear old ones
make_9_buttons() # 2.
print("\n\n")
def main_button():
b = Button(win, # !!!!!!!!!! 注意这里是 win 不是 frame
text='生成新的颜色',
bg='#e05c5b', # # cyan
command=generate_new_colors,
fg="black",
font=('黑体', 16),
width=40,
height=12,
wraplength=0, # 控制多少行来显示文本 默认是 0 可以修改为 3 多行显示。
justify="center", # 字体的对齐方向
anchor="center", # 这个 pos 控制的是文本内容在 label 框内的朝向
relief="ridge", # 边框效果 raised ridge
)
b.pack(side="bottom", padx=10, pady=10)
return b
# 初始布局
make_9_buttons()
main_button()
win.mainloop()
原文地址:https://blog.csdn.net/waterHBO/article/details/140644146
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!