python - 如何制作一个背景颜色为用户选择的颜色的标签?

标签 python user-interface python-3.x tkinter

所以,这是我的代码。本质上,我想做的是制作一个背景颜色与颜色对话框中选择的颜色相同的标签,以便人们可以看到颜色和颜色十六进制代码。请帮忙。

import sys
from tkinter import *
from tkinter import colorchooser

mGui = Tk()
mGui.geometry("600x300+500+500")
mGui.title("Hexadecimal Color Chooser")

def getColor():
    mycolor = colorchooser.askcolor()
    label = Label(mGui, bg = mycolor).pack()
    mycolor = str(mycolor)
    start = mycolor.index("#")
    stop = mycolor.index("')")
    mycolor = mycolor[start:stop]
    label = Label(mGui, text = "The hexadecimal color code is: " + mycolor).pack()

button = Button(mGui, text = "Choose a color", command = getColor).place(x=0, y=0)

最佳答案

这里存在三个问题:

  1. 如果您不打算使用 sys,则导入它不会执行任何操作。

  2. Tkinter 小部件的 placepackgrid 方法始终返回 None。因此,对他们的任何调用都应始终放在他们自己的线路上。

  3. tkinter.colorchooser.askcolor 返回一个包含两项的元组,如下所示:

    ((128.5, 64.25, 64.25), '#804040')  
    

    此外,该元组中的最后一项是所选颜色的十六进制代码。

以下是脚本的固定版本:

from tkinter import *
from tkinter import colorchooser

mGui = Tk()
mGui.geometry("600x300+500+500")
mGui.title("Hexadecimal Color Chooser")

def getColor():
    color_choice = colorchooser.askcolor()[1]  # get the hex code
    color = Label(mGui, bg=color_choice)
    color.pack()
    hexcode = Label(mGui, text="The hexadecimal color code is: "+color_choice)
    hexcode.pack()

button = Button(mGui, text="Choose a color", command=getColor)
button.place(x=0, y=0)

mGui.mainloop()

关于python - 如何制作一个背景颜色为用户选择的颜色的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20589439/

相关文章:

python - 笛卡尔积获取一组索引以指向 NumPy 数组中的唯一元素

python - 加入两个偏移量列表 ("offset zip"?)

python - 在 iPad 上进行选择时,模态内的自动完成功能效果不佳

python - Pandas 将 "\r"添加到 csv 文件

python-3.x - Python-Docx 缺少默认模板

python - 通过索引更新列表元素

c - 如何使用 C 创建类似 Windows 的 GUI

java - 使用 Java 增强 C++ Eclipse

GUI 和命令行的 C# 应用程序

python-3.x - Python - 猴子补丁失败,为什么?