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 onesmake_9_buttons()  # 2.print("\n\n")def main_button():b = Button(win,  # !!!!!!!!!! 注意这里是 win 不是 frametext='生成新的颜色',bg='#e05c5b',  # # cyancommand=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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷粒商城实战笔记-错误记录-启动失败

文章目录 一,lombok报错二,Output directory is not specified 一,lombok报错 java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled. Your processor is: com.sun.proxy.$Proxy8 Lombok …

初试Ollama本地大模型

准备工作 机器配置: CPUi5-10400内存16GB硬盘SSD 480GB显卡GTX 1660 系统:Ubuntu 18.04 Server NVIDIA驱动安装 - 下载 驱动下载地址:https://www.nvidia.cn/geforce/drivers/ - 获取下载链接 GTX 1660驱动下载链接:https://…

怎么理解FPGA的查找表与CPLD的乘积项

怎么理解 fpga的查找表 与cpld的乘积项 FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)是两种常见的数字逻辑器件,它们在内部架构和工作原理上有着一些显著的区别。理解FPGA的查找表(LUT,L…

在 Android 上实现语音命令识别:详细指南

在 Android 上实现语音命令识别:详细指南 语音命令识别在现代 Android 应用中变得越来越普遍。它允许用户通过自然语言与设备进行交互,从而提升用户体验。本文将详细介绍如何在 Android 上实现语音命令识别,包括基本实现、带有占位槽位的命令处理,以及相关的配置和调试步骤…

力扣SQL50 指定日期的产品价格 双重子查询 coalesce

Problem: 1164. 指定日期的产品价格 coalesce 的使用 简洁版 &#x1f468;‍&#x1f3eb; 参考题解 select distinct p1.product_id,coalesce((select p2.new_pricefrom Products p2where p2.product_id p1.product_id and p2.change_date < 2019-08-16order by p2.…

黑马JavaWeb企业级开发(知识清单)03——HTML实现正文:排版(音视频、换行、段落)、布局标签(div、span)、盒子模型

文章目录 前言一、正文排版1. 视频标签: < video >2. 音频标签: < audio >3. 换行标签: < br >4. 段落标签 < p >5. vscode实现 二、布局1. 盒子模型2. 布局标签< div >和< span >3. VScode实现 三、源代码和运行结果总结 前言 本篇文章是…

uniapp bug解决:uniapp文件查找失败:‘uview-ui‘ at main.js:14

文章目录 报错内容解决方法main.js 文件中 uView 主 JS 库引入 uView 的全局 SCSS 主题文件内容修改引入 uView 基础样式内容修改配置 easycom 内容修改 报错内容 10:50:51.795 文件查找失败&#xff1a;uview-ui at main.js:14 10:59:39.570 正在差量编译... 10:59:43.213 文…

git的一些使用技巧(git fetch 和 git pull的区别,git merge 和 git rebase的区别)

最近闲来无聊&#xff0c;虽然会使用git操作&#xff0c;但是 git fetch 和 git pull 的区别&#xff0c;git merge 和 git rebase的区别只是一知半解&#xff0c;稍微研究一下&#xff1b; git fetch 和 git pull 的区别 git fetch git fetch 是将远程仓库中的改动拉到本地…

ARM架构(三)——AMBA和总线②

本文参考 ARM文档“Introduction to AMBA AXI4 - Arm Developer” 手册可以在ARM官方文档中下载ARM.con&#xff0c;也可以访问我的百度网盘资源 提取码&#xff1a;1234 目录 1. AXI协议概述1.1 多主系统中的AXI1.2 AXI通道1.3 AXI的主要特点 2. 通道传输和事务&#xff08; …

基础IO(重定向与缓冲区)

一、重定向 1、stat() 与 read() 函数 &#xff08;1&#xff09;stat() 函数 path&#xff1a;文件路径 buf&#xff1a;输出型参数&#xff0c;用于返回文件的各种属性。 函数成功返回 0 &#xff0c;失败返回 -1 &#xff08;2&#xff09;read() 函数 fd&#xff1a;文…

使用minio cllient(mc)完成不同服务器的minio的数据迁移和mc基本操作

minio client 前言使用1.拉取minio client 镜像2.部署mc容器3.添加云存储服务器4.迁移数据1.全量迁移2.只迁移某个桶3.覆盖重名文件 5.其他操作1.列出所有alias、列出列出桶中的文件和目录1.1.列出所有alias1.2.列出桶中的文件和目录 2.创建桶、删除桶2.1.创建桶2.2.删除桶 3.删…

Android APK混淆处理方案分析

这里写目录标题 一、前言1.1 相关工具二、Apk 分析2.1 apk 解压文件2.2 apk 签名信息2.3 apk AndroidManifest.xml2.4 apk code三、Apk 处理3.1 添加垃圾文件3.2 AndroidManifest.xml 处理3.3 dex 混淆处理3.4 zipalign对齐3.5 apk 重新签名3.6 apk 安装测试四、总结一、前言 提…

顺序表和单链表的经典算法题

目录 前言 一、基础思想&#xff08;数组&#xff09; 1. 移除元素 2.删除有序元素的重复项 3.合并两个有序数组 二、单链表算法 1.移除链表元素 2.翻转链表 3.合并两个有序的链表 前言 Hello,小伙伴们&#xff0c;今天我们来做一个往期知识的回顾&#xff0c;今天我将…

C++ 设计模式(五)——状态模式

状态模式 序言理解源码 序言 设计模式只是一个抽象的设计模式方法&#xff0c;并不是一个固定使用的搭配&#xff0c;就算是普通switch语句&#xff0c;Map&#xff0c;乃至状态机都是状态模式的其中一种实现方法 状态模式看起来好像和策略模式差不多&#xff0c;主要是其的侧…

【vluhub】log4j注入漏洞 CVE-2021-44228

LOG4介绍 是一个用Java编写的可靠&#xff0c;快速和灵活的日志框架&#xff08;API&#xff09;&#xff0c;它在Apache软件许可下发布 log4j存在远程代码执行漏洞、受影响版本2.x 部署环境 攻击机环境&#xff1a;192.168.3.180 kail环境&#xff1a;192.168.203.12【NAT…

深入理解 OSPF NSSA “P-bit”

** 注&#xff1a;机翻&#xff0c;未校对。** OSPF NSSA P-bit Explained OSPF Forward Address Filtering OSPF 转发地址过滤 In this lesson we’ll take a closer look at the OSPF NSSA “P-bit”. When we redistribute something into an OSPF NSSA area then these …

数据开发/数仓工程师上手指南(一)数仓概念总览

前言 笔者毕业最开始从事的就是大数据开发和数据仓库建设工作&#xff0c;途中曾担任过人工智能工程师和计算机视觉工程师&#xff0c;没想到最后兜兜转转还是回到了最原本的工作数据开发工程师。但很少有写关于本职工作的技术内容输出。 之前笔者撰文内容大部分都是关于算法…

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用&#xff0c;比如遍历数组、累加数值、重复执行某项操作直到满足条件等。 但是在使用循环语句的时候需要注意下哈&#xff0c;有时候一不小心会构成死循环或者…

Ubuntu上安装anaconda创建虚拟环境(各种踩坑版)

之前都是在Windows桌面版进行深度学习的环境部署及训练&#xff0c;今天尝试了一下在Ubuntu上进行环境部署&#xff0c;踩了不少坑&#xff0c;提供一些解决办法给大家避雷。 目录 一、下载和安装anaconda 1. 下载 2. 安装 二、创建虚拟环境 一、下载和安装anaconda 1. …

uniapp入门超详细教程:如何从零开始搭建项目

目录 一、介绍 二、环境搭建 2.1.需要下载的软件 2.1.1 HBuilderX 2.1.2 下载微信开发者工具 2.2 创建uniapp项目 2.2.1 新建项目 2.2.2 项目基本结构 2.2.3 在微信开发者工具上运行 2.2.4 发布微信小程序 三、pages.json 页面路由 四、组件 4.1 视图容器 4.1.1 v…