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 - Spacey "OSError: [E050] Can' t 找到模型 'en_core_web_sm'。它似乎不是 Python 包或数据目录的有效路径。”

python - np.unique 中更快的 return_inverse

java - 如何在运行时使 JPanel 保持在父容器的顶部?

python - 使用 Python 将 XML 文档插入现有 XML

python-3.x - python : variables in a function with dot preceded by the function name

Python:是否可以只从 sys.path 中的文件夹中获取特定模块

python - 查找有多少高于标准开发值

java - 标记 x 和 y 轴 java gui

multithreading - QT:QFileSystemModel _q_fileSystemChanged 插槽在 UI 线程上执行,这与文档相矛盾

python - 在 Ipython 中使用 Pylint(Jupyter-Notebook)