Python+Tkinter实现RGB数值转换为16进制码
更新时间:2023年01月06日 10:17:47 作者:Leleprogrammer
这篇文章主要为大家详细介绍了Python如何利用Tkinter编写一个RGB数值转换为16进制码的小工具,文中的示例代讲解详细,感兴趣的小伙伴可以了解一下
这次,我们用Tkinter写一个RGB转16进制的一个小工具,先看看效果:
代码教学
导入模块
from tkinter import *
创建窗口
root=Tk() root.title("小工具 - RGB颜色转换16进制码") root.geometry("400x400")
设置控件,这里用rVar,gVar,bVar来储存rgb数值,用Scale制作滑块
frame=Frame(root) frame.pack(side=LEFT) frame2=Frame(root) frame2.pack(side=LEFT) rVar=IntVar() rVar.set(0) bVar=IntVar() bVar.set(0) gVar=IntVar() gVar.set(0) rL=Label(frame,text="R:") gL=Label(frame,text="G:") bL=Label(frame,text="B:") rL.grid(row=0,column=0) gL.grid(row=1,column=0) bL.grid(row=2,column=0) r=Scale(frame,from_=0,to=255,orient=HORIZONTAL,command=update,variable=rVar) r.grid(row=0,column=1) g=Scale(frame,from_=0,to=255,orient=HORIZONTAL,command=update,variable=gVar) g.grid(row=1,column=1) b=Scale(frame,from_=0,to=255,orient=HORIZONTAL,command=update,variable=bVar) b.grid(row=2,column=1) canvas=Canvas(frame2) canvas.pack(side=TOP,fill=BOTH) color16Var=StringVar() color16Var.set("") _16L=Label(frame2,textvariable=color16Var) _16L.pack(side=TOP,fill=BOTH)
拖动滑块时更新屏幕
def update(*args): R,G,B=rVar.get(),gVar.get(),bVar.get() r16=str(hex(int(R)))[2:] g16=str(hex(int(G)))[2:] b16=str(hex(int(B)))[2:] if len(r16)==1: r16="0"+r16 if len(g16)==1: g16="0"+g16 if len(b16)==1: b16="0"+b16 color16=f"#{r16}{g16}{b16}" color16Var.set(color16) canvas.config(bg=color16)
最终代码
from tkinter import * def update(*args): R,G,B=rVar.get(),gVar.get(),bVar.get() r16=str(hex(int(R)))[2:] g16=str(hex(int(G)))[2:] b16=str(hex(int(B)))[2:] if len(r16)==1: r16="0"+r16 if len(g16)==1: g16="0"+g16 if len(b16)==1: b16="0"+b16 color16=f"#{r16}{g16}{b16}" color16Var.set(color16) canvas.config(bg=color16) root=Tk() root.title("小工具 - RGB颜色转换16进制码") root.geometry("400x400") frame=Frame(root) frame.pack(side=LEFT) frame2=Frame(root) frame2.pack(side=LEFT) rVar=IntVar() rVar.set(0) bVar=IntVar() bVar.set(0) gVar=IntVar() gVar.set(0) rL=Label(frame,text="R:") gL=Label(frame,text="G:") bL=Label(frame,text="B:") rL.grid(row=0,column=0) gL.grid(row=1,column=0) bL.grid(row=2,column=0) r=Scale(frame,from_=0,to=255,orient=HORIZONTAL,command=update,variable=rVar) r.grid(row=0,column=1) g=Scale(frame,from_=0,to=255,orient=HORIZONTAL,command=update,variable=gVar) g.grid(row=1,column=1) b=Scale(frame,from_=0,to=255,orient=HORIZONTAL,command=update,variable=bVar) b.grid(row=2,column=1) canvas=Canvas(frame2) canvas.pack(side=TOP,fill=BOTH) color16Var=StringVar() color16Var.set("") _16L=Label(frame2,textvariable=color16Var) _16L.pack(side=TOP,fill=BOTH) root.mainloop()
到此这篇关于Python+Tkinter实现RGB数值转换为16进制码的文章就介绍到这了,更多相关Python Tkinter RGB数值转16进制码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python数组排序方法之sort、sorted和argsort详解
这篇文章主要给大家介绍了关于python数组排序方法之sort、sorted和argsort的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2022-03-03
最新评论