【问题标题】:How to display colored emojis in tkinter?如何在 tkinter 中显示彩色表情符号?
【发布时间】:2021-05-16 21:40:27
【问题描述】:

有没有办法在 tkinter 中显示彩色表情符号?

代码如下:

from tkinter import *
import pyperclip

root = Tk()

def copy():
    pyperclip.copy(button['text'])
    print("Copied!")

button = Button(root , text = "????" , font = "arial 70" , command = copy)
button.pack()

mainloop()

当我运行这段代码时,我会得到这样的结果:

这里,按钮中显示的表情符号是全黑的,没有着色。

我知道我可以在按钮中使用表情符号的图像,但如果我必须为数百个表情符号做同样的事情,那就不可能了。

我想要的是使表情符号着色,以便人们更容易识别它。

有没有办法在 tkinter 中实现这一点?

如果有人能帮助我,那就太好了。

【问题讨论】:

  • 您尝试使用哪个 Python 和 tkinter 版本?
  • @J.M.Arnold:我使用的是 Python 版本:3.9.1 和 tkinter 版本:8.6
  • 试试这个:label.config(fg="light green")。如果您希望表情符号的内部是彩色的,那么我认为您不能使用<tkinter.Label>。顺便说一句,您可以使用<tkinter.Canvas> 并将图像放在那里。
  • @TheLizzard:making the emoji colored,我的意思是表情符号应该有它的原始颜色(????),而不是在窗口上显示时只有黑色绘图。
  • 为此,我认为您不能使用<tkinter.Label>。如果使用画布,可以放置数百张图片,但很难实现。

标签: python tkinter emoji


【解决方案1】:

无论是使用 ttk 还是 tk,(对我而言)似乎不可能在 Tkinter 中显示彩色表情符号。因此,对于在 Tkinter 中显示彩色表情符号,我有一个想法。首先,我从谷歌下载了一张表情符号的图片。图片链接:https://i.pinimg.com/originals/79/c2/71/79c2714528ebf4669603e32121ae6019.png

然后将图像保存在保存代码的同一目录中。

最后你必须在标签中使用这张图片。这是我如何使用此图像的代码:

from tkinter import *
from tkinter import ttk

root = Tk()

account_bitmap = PhotoImage(file = "emoji.png") 
account_bitmap = account_bitmap.subsample(3, 3)

label = ttk.Label(root , image= account_bitmap, compound= TOP)
label.pack()

mainloop()

这是我的输出:

我认为这是您想要的输出。

【讨论】:

  • 如果我们需要 100 个表情符号和这些表情符号之间的文本怎么办?我不认为 tkinter 可以处理那么多小部件。
  • @TheLizzard :是的,我也是这么想的。如果我想为数百个表情符号执行此操作,我将无法下载所有这些表情符号的图像。我正在寻找一种不需要使用任何图像的方式。
  • 不是 100% 肯定,但我认为表情符号的外观(及其颜色)取决于字体。如果您不想使用图像,则可能需要找到更好的字体。
  • @TheLizzard 要显示文本,请传递一个额外的参数“text”来显示文本。要更改文本位置,请将复合更改为您想要的方向。要显示 100 个表情符号,您应该使用循环。关于字体,是的,显然有可能支持显示彩色表情符号的任何字体。
  • @SabilIslam :你能给我推荐一种可以支持显示彩色表情符号的字体吗?我尝试了不同的字体,但找不到任何可以显示彩色表情符号的字体。
猜你喜欢
  • 2018-07-10
  • 2022-11-10
  • 2019-08-22
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 2021-12-20
  • 2020-11-03
相关资源
最近更新 更多