【开源工具】超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器

article/2025/6/16 3:41:42

🌟 超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器

请添加图片描述
在这里插入图片描述

🌈 个人主页:创客白泽 - CSDN博客
🔥 系列专栏:🐍《Python开源项目实战》
💡 热爱不止于代码,热情源自每一个灵感闪现的夜晚。愿以开源之火,点亮前行之路。
👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

请添加图片描述

📖 概述

在当今数字化社交时代,Emoji已成为全球通用的视觉语言。本文介绍如何使用Python和PyQt5开发一个功能全面的Emoji工具箱,包含完整的Unicode 14.0标准表情库,提供分类浏览、智能搜索和快捷复制等功能。该项目具有以下技术亮点:

  • 采用MVC架构设计
  • 支持跨平台运行(Windows/macOS/Linux)
  • 实现高性能的emoji渲染和搜索
  • 提供现代化的UI交互体验
  • 完整包含1800+个标准emoji

在这里插入图片描述

🎯 功能特性

1. 全量Emoji集合

  • 涵盖9大分类体系
  • 每个emoji包含官方名称标注
  • 支持最新Unicode 14.0标准

2. 智能搜索系统

  • 支持中文/英文关键词搜索
  • 实时显示匹配结果
  • 搜索结果包含分类路径

3. 高效交互设计

  • 一键复制emoji到剪贴板
  • 悬停显示详细信息
  • 自适应网格布局

4. 现代化UI

  • 扁平化设计风格
  • 平滑的动画过渡
  • 深色/浅色主题支持

🖥️ 展示效果

主界面布局

在这里插入图片描述

分类浏览效果

# 分类数据结构示例
categories = {"😃 笑脸与情感": [("😀", "笑脸"), ("😃", "大笑")],"👫 人物与身体": [("👋", "挥手"), ("🤚", "抬手")]
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

搜索功能演示

在这里插入图片描述

🛠️ 开发步骤详解

1. 环境准备

pip install PyQt5==5.15.7
pip install pyqt5-tools

2. 核心实现流程

  1. 数据层构建
def load_emoji_data(self):self.categories = {"分类名称": [("😀", "笑脸"), ...],...}
  1. UI界面开发
class MainWindow(QMainWindow):def __init__(self):# 初始化搜索框、标签页等组件self.init_ui()
  1. 业务逻辑实现
def search_emojis(self):# 实现搜索功能for emoji, name in emojis:if keyword in name.lower():# 添加搜索结果

🔍 代码深度解析

1. 高性能渲染方案

# 使用QListWidget的IconMode实现网格布局
emoji_list.setViewMode(QListWidget.IconMode)
emoji_list.setGridSize(QSize(80, 80))
emoji_list.setResizeMode(QListWidget.Adjust)

2. 智能搜索算法

def search_emojis(self):search_text = self.search_input.text().lower()# 同时匹配emoji字符和名称if search_text in name.lower() or search_text in emoji.lower():# 使用Qt.UserRole存储原始数据item.setData(Qt.UserRole, emoji)  

3. UI优化技巧

/* 使用CSS样式美化界面 */
QListWidget::item {padding: 12px;border-radius: 4px;
}
QListWidget::item:hover {background: #e6f2ff;
}

4. 剪贴板集成

def copy_emoji_to_clipboard(self, item):clipboard = QApplication.clipboard()clipboard.setText(item.data(Qt.UserRole))

📥 源码下载

import sys
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QListWidget, QListWidgetItem, QPushButton, QTabWidget, QScrollArea, QFrame, QSizePolicy)
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QFont, QIcon, QColor, QPaletteclass EmojiGenerator(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle('Emoji文字库工具箱')self.setGeometry(100, 100, 1000, 800)self.setMinimumSize(800, 600)# 设置窗口图标try:self.setWindowIcon(QIcon('emoji_icon.png'))except:pass# 初始化UIself.init_ui()# 加载emoji数据self.load_emoji_data()# 填充分类标签页self.populate_category_tabs()def init_ui(self):"""初始化用户界面"""main_widget = QWidget()main_layout = QVBoxLayout()main_layout.setContentsMargins(12, 12, 12, 12)main_layout.setSpacing(12)# 搜索栏search_frame = QFrame()search_frame.setFrameShape(QFrame.StyledPanel)search_layout = QHBoxLayout(search_frame)search_layout.setContentsMargins(8, 8, 8, 8)self.search_input = QLineEdit()self.search_input.setPlaceholderText("搜索表情... (如输入'笑脸'或'😀')")self.search_input.textChanged.connect(self.search_emojis)self.search_input.setClearButtonEnabled(True)search_button = QPushButton("搜索")search_button.clicked.connect(self.search_emojis)search_layout.addWidget(self.search_input)search_layout.addWidget(search_button)# 标签页self.tabs = QTabWidget()self.tabs.setTabPosition(QTabWidget.North)self.tabs.setMovable(True)# 搜索结果标签页self.search_results_tab = QWidget()self.search_results_layout = QVBoxLayout(self.search_results_tab)self.search_results_list = QListWidget()self.search_results_list.setViewMode(QListWidget.IconMode)self.search_results_list.setResizeMode(QListWidget.Adjust)self.search_results_list.setGridSize(QSize(80, 80))self.search_results_list.setSpacing(8)self.search_results_layout.addWidget(self.search_results_list)self.tabs.addTab(self.search_results_tab, "🔍 搜索结果")main_layout.addWidget(search_frame)main_layout.addWidget(self.tabs)main_widget.setLayout(main_layout)self.setCentralWidget(main_widget)# 状态栏self.status_label = QLabel("准备就绪")self.statusBar().addPermanentWidget(self.status_label)# 设置样式self.setStyleSheet("""QMainWindow {background-color: #f5f5f5;}QFrame {background: white;border-radius: 6px;}QTabWidget::pane {border: 1px solid #d4d4d4;border-radius: 6px;padding: 4px;background: white;}QTabBar::tab {padding: 8px 16px;border: 1px solid #d4d4d4;border-bottom: none;border-top-left-radius: 6px;border-top-right-radius: 6px;background: #f0f0f0;margin-right: 4px;}QTabBar::tab:selected {background: white;margin-bottom: -1px;border-bottom: 1px solid white;}QTabBar::tab:hover {background: #e0e0e0;}QListWidget {background: white;border: 1px solid #e0e0e0;border-radius: 6px;outline: 0;}QListWidget::item {padding: 12px;border-radius: 4px;}QListWidget::item:hover {background: #e6f2ff;}QLineEdit {padding: 8px 12px;border: 1px solid #d4d4d4;border-radius: 6px;font-size: 14px;selection-background-color: #4a90e2;}QPushButton {padding: 8px 16px;background: #4a90e2;color: white;border: none;border-radius: 6px;font-size: 14px;min-width: 80px;}QPushButton:hover {background: #3a7bc8;}QPushButton:pressed {background: #2a6ab4;}QStatusBar {background: white;border-top: 1px solid #d4d4d4;padding: 4px;}""")def load_emoji_data(self):"""加载完整的emoji数据"""self.categories = {"😃 笑脸与情感": [("😀", "笑脸"), ("😃", "大笑"), ("😄", "开心笑"), ("😁", "笑嘻嘻"), ("😆", "眯眼笑"),("😅", "流汗笑"), ("🤣", "笑得打滚"), ("😂", "笑哭"), ("🙂", "微笑"), ("🙃", "倒脸"),("😉", "眨眼"), ("😊", "害羞笑"), ("😇", "天使笑"), ("🥰", "爱心笑脸"), ("😍", "爱心眼"),("🤩", "星星眼"), ("😘", "飞吻"), ("😗", "亲吻"), ("😚", "闭眼亲吻"), ("😙", "微笑亲吻"),("🥲", "含泪笑"), ("😋", "美味脸"), ("😛", "吐舌"), ("😜", "单眼吐舌"), ("🤪", "滑稽脸"),("😝", "眯眼吐舌"), ("🤑", "金钱脸"), ("🤗", "拥抱脸"), ("🤭", "捂嘴"), ("🤫", "嘘声"),("🤔", "思考"), ("🤐", "拉链嘴"), ("🤨", "怀疑"), ("😐", "中性"), ("😑", "无表情"),("😶", "无嘴"), ("😏", "得意"), ("😒", "不高兴"), ("🙄", "翻白眼"), ("😬", "龇牙"),("🤥", "说谎"), ("😌", "放松"), ("😔", "忧郁"), ("😪", "困倦"), ("🤤", "流口水"),("😴", "睡觉"), ("😷", "口罩"), ("🤒", "发烧"), ("🤕", "受伤"), ("🤢", "恶心"),("🤮", "呕吐"), ("🤧", "打喷嚏"), ("🥵", "热"), ("🥶", "冷"), ("🥴", "头晕"),("😵", "晕头转向"), ("🤯", "爆炸头"), ("🤠", "牛仔帽"), ("🥳", "派对"), ("😎", "墨镜"),("🤓", "书呆子"), ("🧐", "单片眼镜"), ("😕", "困惑"), ("😟", "担心"), ("🙁", "轻微不高兴"),("☹️", "不高兴"), ("😮", "惊讶"), ("😯", "沉默"), ("😲", "震惊"), ("😳", "脸红"),("🥺", "恳求"), ("😦", "皱眉惊讶"), ("😧", "痛苦"), ("😨", "恐惧"), ("😰", "焦虑冷汗"),("😥", "失望但解脱"), ("😢", "哭泣"), ("😭", "大哭"), ("😱", "尖叫恐惧"), ("😖", "困惑"),("😣", "忍耐"), ("😞", "失望"), ("😓", "冷汗"), ("😩", "疲惫"), ("😫", "疲倦"),("🥱", "打哈欠"), ("😤", "傲慢"), ("😡", "愤怒"), ("😠", "生气"), ("🤬", "脏话"),("😈", "恶魔笑"), ("👿", "恶魔"), ("💀", "骷髅"), ("☠️", "骷髅骨头"), ("💩", "便便"),("🤡", "小丑"), ("👹", "妖怪"), ("👺", "天狗"), ("👻", "鬼"), ("👽", "外星人"),("👾", "外星怪物"), ("🤖", "机器人"), ("😺", "猫笑脸"), ("😸", "猫眯眼笑"), ("😹", "猫笑哭"),("😻", "猫爱心眼"), ("😼", "猫得意笑"), ("😽", "猫亲吻"), ("🙀", "猫惊讶"), ("😿", "猫哭泣"),("😾", "猫生气"), ("🙈", "不看邪恶"), ("🙉", "不听邪恶"), ("🙊", "不说邪恶"), ("💋", "唇印"),("💌", "情书"), ("💘", "爱心箭"), ("💝", "爱心礼带"), ("💖", "闪烁爱心"), ("💗", "成长爱心"),("💓", "跳动爱心"), ("💞", "旋转爱心"), ("💕", "两颗爱心"), ("💟", "心形装饰"), ("❣️", "心叹号"),("💔", "心碎"), ("❤️", "红心"), ("🧡", "橙心"), ("💛", "黄心"), ("💚", "绿心"),("💙", "蓝心"), ("💜", "紫心"), ("🤎", "棕心"), ("🖤", "黑心"), ("🤍", "白心"),("💯", "一百分"), ("💢", "愤怒符号"), ("💥", "碰撞"), ("💫", "眩晕"), ("💦", "汗滴"),("💨", "疾跑"), ("🕳️", "洞"), ("💣", "炸弹"), ("💬", "对话气泡"), ("👁️‍🗨️", "眼睛气泡"),("🗨️", "左对话气泡"), ("🗯️", "右愤怒气泡"), ("💭", "思考气泡"), ("💤", "zzz")],"👫 人物与身体": [("👋", "挥手"), ("🤚", "抬手"), ("🖐️", "张开手"), ("✋", "举手"), ("🖖", "瓦肯手势"),("👌", "OK手势"), ("🤏", "捏手指"), ("✌️", "胜利手势"), ("🤞", "交叉手指"), ("🤟", "爱你的手势"),("🤘", "摇滚手势"), ("🤙", "打电话手势"), ("👈", "左指"), ("👉", "右指"), ("👆", "上指"),("🖕", "中指"), ("👇", "下指"), ("☝️", "食指上指"), ("👍", "大拇指"), ("👎", "拇指向下"),("✊", "拳头"), ("👊", "出拳"), ("🤛", "左拳"), ("🤜", "右拳"), ("👏", "鼓掌"),("🙌", "举手欢呼"), ("👐", "张开双手"), ("🤲", "掌心向上"), ("🤝", "握手"), ("🙏", "祈祷"),("✍️", "写字"), ("💅", "涂指甲油"), ("🤳", "自拍"), ("💪", "肌肉"), ("🦾", "机械臂"),("🦿", "机械腿"), ("🦵", "腿"), ("🦶", "脚"), ("👂", "耳朵"), ("🦻", "助听器耳朵"),("👃", "鼻子"), ("🧠", "大脑"), ("🦷", "牙齿"), ("🦴", "骨头"), ("👀", "眼睛"),("👁️", "单眼"), ("👅", "舌头"), ("👄", "嘴巴"), ("👶", "婴儿"), ("🧒", "儿童"),("👦", "男孩"), ("👧", "女孩"), ("🧑", "成人"), ("👨", "男人"), ("👩", "女人"),("🧔", "胡子"), ("🧔‍♂️", "男胡子"), ("🧔‍♀️", "女胡子"), ("👨‍🦰", "红发男"), ("👩‍🦰", "红发女"),("👨‍🦱", "卷发男"), ("👩‍🦱", "卷发女"), ("👨‍🦳", "白发男"), ("👩‍🦳", "白发女"), ("👨‍🦲", "秃头男"),("👩‍🦲", "秃头女"), ("👱", "金发"), ("👱‍♂️", "金发男"), ("👱‍♀️", "金发女"), ("🧓", "老人"),("👴", "老爷爷"), ("👵", "老奶奶"), ("🙍", "皱眉"), ("🙍‍♂️", "男皱眉"), ("🙍‍♀️", "女皱眉"),("🙎", "撅嘴"), ("🙎‍♂️", "男撅嘴"), ("🙎‍♀️", "女撅嘴"), ("🙅", "不行"), ("🙅‍♂️", "男不行"),("🙅‍♀️", "女不行"), ("🙆", "可以"), ("🙆‍♂️", "男可以"), ("🙆‍♀️", "女可以"), ("💁", "告知"),("💁‍♂️", "男告知"), ("💁‍♀️", "女告知"), ("🙋", "举手"), ("🙋‍♂️", "男举手"), ("🙋‍♀️", "女举手"),("🧏", "聋人"), ("🧏‍♂️", "男聋人"), ("🧏‍♀️", "女聋人"), ("🙇", "鞠躬"), ("🙇‍♂️", "男鞠躬"),("🙇‍♀️", "女鞠躬"), ("🤦", "捂脸"), ("🤦‍♂️", "男捂脸"), ("🤦‍♀️", "女捂脸"), ("🤷", "耸肩"),("🤷‍♂️", "男耸肩"), ("🤷‍♀️", "女耸肩"), ("👨‍⚕️", "男医生"), ("👩‍⚕️", "女医生"), ("👨‍🎓", "男学生"),("👩‍🎓", "女学生"), ("👨‍🏫", "男老师"), ("👩‍🏫", "女老师"), ("👨‍⚖️", "男法官"), ("👩‍⚖️", "女法官"),("👨‍🌾", "男农民"), ("👩‍🌾", "女农民"), ("👨‍🍳", "男厨师"), ("👩‍🍳", "女厨师"), ("👨‍🔧", "男技工"),("👩‍🔧", "女技工"), ("👨‍🏭", "男工人"), ("👩‍🏭", "女工人"), ("👨‍💼", "男职员"), ("👩‍💼", "女职员"),("👨‍🔬", "男科学家"), ("👩‍🔬", "女科学家"), ("👨‍💻", "男技术员"), ("👩‍💻", "女技术员"), ("👨‍🎤", "男歌手"),("👩‍🎤", "女歌手"), ("👨‍🎨", "男艺术家"), ("👩‍🎨", "女艺术家"), ("👨‍✈️", "男飞行员"), ("👩‍✈️", "女飞行员"),("👨‍🚀", "男宇航员"), ("👩‍🚀", "女宇航员"), ("👨‍🚒", "男消防员"), ("👩‍🚒", "女消防员"), ("👮", "警察"),("👮‍♂️", "男警察"), ("👮‍♀️", "女警察"), ("🕵️", "侦探"), ("🕵️‍♂️", "男侦探"), ("🕵️‍♀️", "女侦探"),("💂", "卫兵"), ("💂‍♂️", "男卫兵"), ("💂‍♀️", "女卫兵"), ("🥷", "忍者"), ("👷", "建筑工人"),("👷‍♂️", "男建筑工人"), ("👷‍♀️", "女建筑工人"), ("🤴", "王子"), ("👸", "公主"), ("👳", "包头巾"),("👳‍♂️", "男包头巾"), ("👳‍♀️", "女包头巾"), ("👲", "瓜皮帽"), ("🧕", "头巾"), ("🤵", "穿礼服"),("🤵‍♂️", "男穿礼服"), ("🤵‍♀️", "女穿礼服"), ("👰", "戴面纱"), ("👰‍♂️", "男戴面纱"), ("👰‍♀️", "女戴面纱"),("🤰", "孕妇"), ("🤱", "哺乳"), ("👩‍🍼", "女哺乳"), ("👨‍🍼", "男哺乳"), ("🧑‍🍼", "人哺乳"),("👼", "天使"), ("🎅", "圣诞老人"), ("🤶", "圣诞奶奶"), ("🧑‍🎄", "圣诞人"), ("🦸", "超级英雄"),("🦸‍♂️", "男超级英雄"), ("🦸‍♀️", "女超级英雄"), ("🦹", "超级反派"), ("🦹‍♂️", "男超级反派"), ("🦹‍♀️", "女超级反派"),("🧙", "法师"), ("🧙‍♂️", "男法师"), ("🧙‍♀️", "女法师"), ("🧚", "精灵"), ("🧚‍♂️", "男精灵"),("🧚‍♀️", "女精灵"), ("🧛", "吸血鬼"), ("🧛‍♂️", "男吸血鬼"), ("🧛‍♀️", "女吸血鬼"), ("🧜", "人鱼"),("🧜‍♂️", "男人鱼"), ("🧜‍♀️", "女人鱼"), ("🧝", "精灵"), ("🧝‍♂️", "男精灵"), ("🧝‍♀️", "女精灵"),("🧞", "精灵"), ("🧞‍♂️", "男精灵"), ("🧞‍♀️", "女精灵"), ("🧟", "僵尸"), ("🧟‍♂️", "男僵尸"),("🧟‍♀️", "女僵尸"), ("💆", "按摩"), ("💆‍♂️", "男按摩"), ("💆‍♀️", "女按摩"), ("💇", "理发"),("💇‍♂️", "男理发"), ("💇‍♀️", "女理发"), ("🚶", "行人"), ("🚶‍♂️", "男行人"), ("🚶‍♀️", "女行人"),("🧍", "站立"), ("🧍‍♂️", "男站立"), ("🧍‍♀️", "女站立"), ("🧎", "跪"), ("🧎‍♂️", "男跪"),("🧎‍♀️", "女跪"), ("🏃", "跑步"), ("🏃‍♂️", "男跑步"), ("🏃‍♀️", "女跑步"), ("💃", "跳舞女"),("🕺", "跳舞男"), ("🕴️", "悬浮人"), ("👯", "兔女郎"), ("👯‍♂️", "男兔女郎"), ("👯‍♀️", "女兔女郎"),("🧖", "桑拿"), ("🧖‍♂️", "男桑拿"), ("🧖‍♀️", "女桑拿"), ("🧗", "攀岩"), ("🧗‍♂️", "男攀岩"),("🧗‍♀️", "女攀岩"), ("🤺", "击剑"), ("🏇", "赛马"), ("⛷️", "滑雪"), ("🏂", "滑雪板"),("🏌️", "高尔夫"), ("🏌️‍♂️", "男高尔夫"), ("🏌️‍♀️", "女高尔夫"), ("🏄", "冲浪"), ("🏄‍♂️", "男冲浪"),("🏄‍♀️", "女冲浪"), ("🚣", "划船"), ("🚣‍♂️", "男划船"), ("🚣‍♀️", "女划船"), ("🏊", "游泳"),("🏊‍♂️", "男游泳"), ("🏊‍♀️", "女游泳"), ("⛹️", "篮球"), ("⛹️‍♂️", "男篮球"), ("⛹️‍♀️", "女篮球"),("🏋️", "举重"), ("🏋️‍♂️", "男举重"), ("🏋️‍♀️", "女举重"), ("🚴", "自行车"), ("🚴‍♂️", "男自行车"),("🚴‍♀️", "女自行车"), ("🚵", "山地车"), ("🚵‍♂️", "男山地车"), ("🚵‍♀️", "女山地车"), ("🤸", "侧手翻"),("🤸‍♂️", "男侧手翻"), ("🤸‍♀️", "女侧手翻"), ("🤼", "摔跤"), ("🤼‍♂️", "男摔跤"), ("🤼‍♀️", "女摔跤"),("🤽", "水球"), ("🤽‍♂️", "男水球"), ("🤽‍♀️", "女水球"), ("🤾", "手球"), ("🤾‍♂️", "男手球"),("🤾‍♀️", "女手球"), ("🤹", "杂耍"), ("🤹‍♂️", "男杂耍"), ("🤹‍♀️", "女杂耍"), ("🧘", "莲花坐"),("🧘‍♂️", "男莲花坐"), ("🧘‍♀️", "女莲花坐"), ("🛀", "洗澡"), ("🛌", "床上"), ("🧑‍🤝‍🧑", "牵手"),("👭", "两女牵手"), ("👫", "男女牵手"), ("👬", "两男牵手"), ("💏", "亲吻"), ("👩‍❤️‍💋‍👨", "女吻男"),("👨‍❤️‍💋‍👨", "男吻男"), ("👩‍❤️‍💋‍👩", "女吻女"), ("💑", "情侣"), ("👩‍❤️‍👨", "女爱男"), ("👨‍❤️‍👨", "男爱男"),("👩‍❤️‍👩", "女爱女"), ("👪", "家庭"), ("👨‍👩‍👦", "家庭男女孩"), ("👨‍👩‍👧", "家庭男女女"), ("👨‍👩‍👧‍👦", "家庭男女女男"),("👨‍👩‍👦‍👦", "家庭男女男男"), ("👨‍👩‍👧‍👧", "家庭男女女女"), ("👨‍👨‍👦", "家庭男男男"), ("👨‍👨‍👧", "家庭男男女"), ("👨‍👨‍👧‍👦", "家庭男男女男"),("👨‍👨‍👦‍👦", "家庭男男男男"), ("👨‍👨‍👧‍👧", "家庭男男女女"), ("👩‍👩‍👦", "家庭女女男"), ("👩‍👩‍👧", "家庭女女女"), ("👩‍👩‍👧‍👦", "家庭女女女男"),("👩‍👩‍👦‍👦", "家庭女女男男"), ("👩‍👩‍👧‍👧", "家庭女女女女"), ("👨‍👦", "父子"), ("👨‍👦‍👦", "父子男"), ("👨‍👧", "父女"),("👨‍👧‍👦", "父女男"), ("👨‍👧‍👧", "父女女"), ("👩‍👦", "母子"), ("👩‍👦‍👦", "母子男"), ("👩‍👧", "母女"),("👩‍👧‍👦", "母女男"), ("👩‍👧‍👧", "母女女"), ("🗣️", "说话"), ("👤", "半身像"), ("👥", "半身像组"),("🫂", "拥抱"), ("👣", "脚印")],"🐻 动物与自然": [("🐵", "猴脸"), ("🐒", "猴子"), ("🦍", "大猩猩"), ("🦧", "猩猩"), ("🐶", "狗脸"),("🐕", "狗"), ("🦮", "导盲犬"), ("🐕‍🦺", "服务犬"), ("🐩", "贵宾犬"), ("🐺", "狼"),("🦊", "狐狸"), ("🦝", "浣熊"), ("🐱", "猫脸"), ("🐈", "猫"), ("🐈‍⬛", "黑猫"),("🦁", "狮子"), ("🐯", "虎脸"), ("🐅", "虎"), ("🐆", "豹"), ("🐴", "马脸"),("🐎", "马"), ("🦄", "独角兽"), ("🦓", "斑马"), ("🦌", "鹿"), ("🦬", "野牛"),("🐮", "牛脸"), ("🐂", "牛"), ("🐃", "水牛"), ("🐄", "奶牛"), ("🐷", "猪脸"),("🐖", "猪"), ("🐗", "野猪"), ("🐽", "猪鼻"), ("🐏", "公羊"), ("🐑", "绵羊"),("🐐", "山羊"), ("🐪", "骆驼"), ("🐫", "双峰骆驼"), ("🦙", "羊驼"), ("🦒", "长颈鹿"),("🐘", "大象"), ("🦣", "猛犸象"), ("🦏", "犀牛"), ("🦛", "河马"), ("🐭", "鼠脸"),("🐁", "老鼠"), ("🐀", "仓鼠"), ("🐹", "仓鼠"), ("🐰", "兔脸"), ("🐇", "兔子"),("🐿️", "松鼠"), ("🦫", "海狸"), ("🦔", "刺猬"), ("🦇", "蝙蝠"), ("🐻", "熊"),("🐻‍❄️", "北极熊"), ("🐨", "考拉"), ("🐼", "熊猫"), ("🦥", "树懒"), ("🦦", "水獭"),("🦨", "臭鼬"), ("🦘", "袋鼠"), ("🦡", "獾"), ("🐾", "爪印"), ("🦃", "火鸡"),("🐔", "鸡"), ("🐓", "公鸡"), ("🐣", "小鸡破壳"), ("🐤", "小鸡"), ("🐥", "正面小鸡"),("🐦", "鸟"), ("🐧", "企鹅"), ("🕊️", "鸽子"), ("🦅", "鹰"), ("🦆", "鸭"),("🦢", "天鹅"), ("🦉", "猫头鹰"), ("🦤", "渡渡鸟"), ("🪶", "羽毛"), ("🦩", "火烈鸟"),("🦚", "孔雀"), ("🦜", "鹦鹉"), ("🐸", "青蛙"), ("🐊", "鳄鱼"), ("🐢", "乌龟"),("🦎", "蜥蜴"), ("🐍", "蛇"), ("🐲", "龙脸"), ("🐉", "龙"), ("🦕", "蜥脚类恐龙"),("🦖", "暴龙"), ("🐳", "喷水鲸"), ("🐋", "鲸鱼"), ("🐬", "海豚"), ("🦭", "海豹"),("🐟", "鱼"), ("🐠", "热带鱼"), ("🐡", "河豚"), ("🦈", "鲨鱼"), ("🐙", "章鱼"),("🐚", "海螺"), ("🪸", "珊瑚"), ("🪼", "水母"), ("🐌", "蜗牛"), ("🦋", "蝴蝶"),("🐛", "毛毛虫"), ("🐜", "蚂蚁"), ("🐝", "蜜蜂"), ("🪲", "甲虫"), ("🐞", "瓢虫"),("🦗", "蟋蟀"), ("🪳", "蟑螂"), ("🕷️", "蜘蛛"), ("🕸️", "蜘蛛网"), ("🦂", "蝎子"),("🦟", "蚊子"), ("🪰", "苍蝇"), ("🪱", "蠕虫"), ("🦠", "微生物"), ("💐", "花束"),("🌸", "樱花"), ("💮", "白花"), ("🏵️", "玫瑰花结"), ("🌹", "玫瑰"), ("🥀", "枯萎的花"),("🌺", "芙蓉"), ("🌻", "向日葵"), ("🌼", "开花"), ("🌷", "郁金香"), ("🪻", "风信子"),("🌱", "幼苗"), ("🪴", "盆栽"), ("🌲", "常青树"), ("🌳", "落叶树"), ("🌴", "棕榈树"),("🌵", "仙人掌"), ("🌾", "稻穗"), ("🌿", "草药"), ("☘️", "三叶草"), ("🍀", "四叶草"),("🍁", "枫叶"), ("🍂", "落叶"), ("🍃", "风吹叶"), ("🪹", "空巢"), ("🪺", "有蛋的巢"),("🍄", "蘑菇")],"🍎 食物与饮料": [("🍏", "青苹果"), ("🍎", "红苹果"), ("🍐", "梨"), ("🍊", "橙子"), ("🍋", "柠檬"),("🍌", "香蕉"), ("🍉", "西瓜"), ("🍇", "葡萄"), ("🍓", "草莓"), ("🫐", "蓝莓"),("🍈", "甜瓜"), ("🍒", "樱桃"), ("🍑", "桃子"), ("🥭", "芒果"), ("🍍", "菠萝"),("🥥", "椰子"), ("🥝", "猕猴桃"), ("🍅", "番茄"), ("🫒", "橄榄"), ("🥑", "牛油果"),("🍆", "茄子"), ("🥔", "土豆"), ("🥕", "胡萝卜"), ("🌽", "玉米"), ("🌶️", "辣椒"),("🫑", "甜椒"), ("🥒", "黄瓜"), ("🥬", "绿叶菜"), ("🥦", "西兰花"), ("🧄", "大蒜"),("🧅", "洋葱"), ("🍄", "蘑菇"), ("🥜", "花生"), ("🫘", "豆子"), ("🌰", "栗子"),("🍞", "面包"), ("🥐", "牛角面包"), ("🥖", "法棍"), ("🫓", "扁面包"), ("🥨", "椒盐卷饼"),("🥯", "贝果"), ("🥞", "煎饼"), ("🧇", "华夫饼"), ("🧀", "奶酪"), ("🍖", "肉骨头"),("🍗", "鸡腿"), ("🥩", "肉块"), ("🥓", "培根"), ("🍔", "汉堡"), ("🍟", "薯条"),("🍕", "披萨"), ("🌭", "热狗"), ("🥪", "三明治"), ("🌮", "玉米饼"), ("🌯", "卷饼"),("🫔", "玉米粽"), ("🥙", "夹馅面包"), ("🧆", "炸豆丸子"), ("🥚", "蛋"), ("🍳", "煎蛋"),("🥘", "平底锅食物"), ("🍲", "炖菜"), ("🫕", "火锅"), ("🥣", "碗勺"), ("🥗", "沙拉"),("🍿", "爆米花"), ("🧈", "黄油"), ("🧂", "盐"), ("🥫", "罐头"), ("🍱", "便当"),("🍘", "米饼"), ("🍙", "饭团"), ("🍚", "米饭"), ("🍛", "咖喱饭"), ("🍜", "面条"),("🍝", "意大利面"), ("🍠", "红薯"), ("🍢", "关东煮"), ("🍣", "寿司"), ("🍤", "炸虾"),("🍥", "鱼糕"), ("🥮", "月饼"), ("🍡", "团子"), ("🥟", "饺子"), ("🥠", "幸运饼干"),("🥡", "外卖盒"), ("🦀", "螃蟹"), ("🦞", "龙虾"), ("🦐", "虾"), ("🦑", "乌贼"),("🦪", "牡蛎"), ("🍦", "软冰淇淋"), ("🍧", "刨冰"), ("🍨", "冰淇淋"), ("🍩", "甜甜圈"),("🍪", "饼干"), ("🎂", "生日蛋糕"), ("🍰", "蛋糕"), ("🧁", "纸杯蛋糕"), ("🥧", "派"),("🍫", "巧克力"), ("🍬", "糖果"), ("🍭", "棒棒糖"), ("🍮", "布丁"), ("🍯", "蜂蜜罐"),("🍼", "奶瓶"), ("🥛", "牛奶"), ("☕", "热饮"), ("🫖", "茶壶"), ("🍵", "茶杯"),("🍶", "清酒"), ("🍾", "香槟"), ("🍷", "葡萄酒"), ("🍸", "鸡尾酒"), ("🍹", "热带饮料"),("🍺", "啤酒"), ("🍻", "干杯"), ("🥂", "碰杯"), ("🥃", "平底杯"), ("🫗", "倒饮料"),("🥤", "带吸管杯"), ("🧋", "珍珠奶茶"), ("🧃", "纸盒饮料"), ("🧉", "马黛茶"), ("🧊", "冰块")],"⚽ 活动与运动": [("⚽", "足球"), ("⚾", "棒球"), ("🥎", "垒球"), ("🏀", "篮球"), ("🏐", "排球"),("🏈", "橄榄球"), ("🏉", "英式橄榄球"), ("🎾", "网球"), ("🥏", "飞盘"), ("🎳", "保龄球"),("🏏", "板球"), ("🏑", "曲棍球"), ("🏒", "冰球"), ("🥍", "长曲棍球"), ("🏓", "乒乓球"),("🏸", "羽毛球"), ("🥊", "拳击手套"), ("🥋", "道服"), ("🥅", "球门"), ("⛳", "高尔夫洞"),("🪁", "风筝"), ("🎣", "钓鱼"), ("🤿", "潜水"), ("🎽", "跑步衫"), ("🎿", "滑雪"),("🛷", "雪橇"), ("🥌", "冰壶"), ("🎯", "靶心"), ("🪀", "悠悠球"), ("🪃", "回旋镖"),("🎱", "台球8"), ("🔮", "水晶球"), ("🪄", "魔杖"), ("🎮", "游戏手柄"), ("🕹️", "操纵杆"),("🎰", "老虎机"), ("🎲", "骰子"), ("🧩", "拼图"), ("♠️", "黑桃"), ("♥️", "红心"),("♦️", "方块"), ("♣️", "梅花"), ("♟️", "兵"), ("🃏", "小丑"), ("🀄", "红中"),("🎴", "花札"), ("🎭", "表演艺术"), ("🖼️", "画框"), ("🎨", "调色板")],"🚗 旅行与地点": [("🚗", "汽车"), ("🚕", "出租车"), ("🚙", "SUV"), ("🛻", "皮卡"), ("🚌", "公交车"),("🚎", "无轨电车"), ("🚐", "小巴"), ("🚑", "救护车"), ("🚒", "消防车"), ("🚓", "警车"),("🚔", "迎面而来的警车"), ("🚖", "迎面而来的出租车"), ("🚘", "迎面而来的汽车"), ("🚚", "卡车"), ("🚛", "铰接式卡车"),("🚜", "拖拉机"), ("🏎️", "赛车"), ("🏍️", "摩托车"), ("🛵", "踏板车"), ("🦽", "手动轮椅"),("🦼", "电动轮椅"), ("🛺", "三轮车"), ("🚲", "自行车"), ("🛴", "滑板车"), ("🛹", "滑板"),("🛼", "轮滑鞋"), ("🚏", "公交站"), ("🛣️", "高速公路"), ("🛤️", "铁路"), ("⛽", "油泵"),("🚨", "警车灯"), ("🚥", "水平红绿灯"), ("🚦", "垂直红绿灯"), ("🛑", "停止标志"), ("🚧", "施工"),("⚓", "锚"), ("⛵", "帆船"), ("🛶", "独木舟"), ("🚤", "快艇"), ("🛳️", "客轮"),("⛴️", "渡轮"), ("🛥️", "摩托艇"), ("🚢", "船"), ("✈️", "飞机"), ("🛩️", "小飞机"),("🛫", "飞机起飞"), ("🛬", "飞机降落"), ("🪂", "降落伞"), ("💺", "座位"), ("🚁", "直升机"),("🚟", "高架铁路"), ("🚠", "缆车"), ("🚡", "空中缆车"), ("🛰️", "卫星"), ("🚀", "火箭"),("🛸", "飞碟"), ("🌍", "地球欧洲非洲"), ("🌎", "地球美洲"), ("🌏", "地球亚洲澳洲"), ("🌐", "子午线地球"),("🗺️", "世界地图"), ("🗾", "日本地图"), ("🧭", "指南针"), ("🏔️", "雪山"), ("⛰️", "山"),("🌋", "火山"), ("🗻", "富士山"), ("🏕️", "露营"), ("🏖️", "海滩"), ("🏜️", "沙漠"),("🏝️", "荒岛"), ("🏞️", "国家公园"), ("🏟️", "体育场"), ("🏛️", "古典建筑"), ("🏗️", "建筑施工"),("🧱", "砖块"), ("🪨", "岩石"), ("🪵", "木头"), ("🛖", "小屋"), ("🏘️", "房屋"),("🏚️", "废弃房屋"), ("🏠", "房子"), ("🏡", "别墅"), ("🏢", "办公楼"), ("🏣", "邮局"),("🏤", "欧洲邮局"), ("🏥", "医院"), ("🏦", "银行"), ("🏨", "酒店"), ("🏩", "爱情酒店"),("🏪", "便利店"), ("🏫", "学校"), ("🏬", "百货商店"), ("🏭", "工厂"), ("🏯", "日本城堡"),("🏰", "欧洲城堡"), ("💒", "婚礼"), ("🗼", "东京塔"), ("🗽", "自由女神像"), ("⛪", "教堂"),("🕌", "清真寺"), ("🛕", "印度寺庙"), ("🕍", "犹太教堂"), ("⛩️", "神社"), ("🕋", "克尔白"),("⛲", "喷泉"), ("⛺", "帐篷"), ("🌁", "雾"), ("🌃", "夜晚"), ("🏙️", "城市景观"),("🌄", "日出"), ("🌅", "日落"), ("🌆", "黄昏城市"), ("🌇", "日落城市"), ("🌉", "夜晚桥梁"),("♨️", "温泉"), ("🎠", "旋转木马"), ("🎡", "摩天轮"), ("🎢", "过山车"), ("💈", "理发店"),("🎪", "马戏团"), ("🚂", "蒸汽火车"), ("🚃", "轨道车"), ("🚄", "高铁"), ("🚅", "子弹头列车"),("🚆", "火车"), ("🚇", "地铁"), ("🚈", "轻轨"), ("🚉", "车站"), ("🚊", "电车"),("🚝", "单轨"), ("🚞", "山地铁路"), ("🚋", "有轨电车")],"💡 物品": [("💡", "灯泡"), ("🔦", "手电筒"), ("🏮", "红灯笼"), ("🪔", "迪亚灯"), ("📔", "装饰笔记本"),("📕", "合上的书"), ("📖", "打开的书"), ("📗", "绿书"), ("📘", "蓝书"), ("📙", "橙书"),("📚", "一堆书"), ("📓", "笔记本"), ("📒", "账本"), ("📃", "卷页"), ("📜", "卷轴"),("📄", "页面"), ("📰", "报纸"), ("🗞️", "卷起的报纸"), ("📑", "书签标签"), ("🔖", "书签"),("🏷️", "标签"), ("💰", "钱袋"), ("🪙", "硬币"), ("💴", "日元"), ("💵", "美元"),("💶", "欧元"), ("💷", "英镑"), ("💸", "带翅膀的钱"), ("💳", "信用卡"), ("🧾", "收据"),("✉️", "信封"), ("📧", "电子邮件"), ("📨", "来信"), ("📩", "带箭头的信封"), ("📤", "发件箱"),("📥", "收件箱"), ("📦", "包裹"), ("📫", "关闭的邮箱"), ("📪", "降旗邮箱"), ("📬", "升旗邮箱"),("📭", "无旗邮箱"), ("📮", "邮筒"), ("🗳️", "投票箱"), ("✏️", "铅笔"), ("✒️", "钢笔尖"),("🖋️", "钢笔"), ("🖊️", "圆珠笔"), ("🖌️", "画笔"), ("🖍️", "蜡笔"), ("📝", "备忘录"),("💼", "公文包"), ("📁", "文件夹"), ("📂", "打开的文件夹"), ("🗂️", "卡片索引"), ("📅", "日历"),("📆", "撕页日历"), ("🗒️", "螺旋记事本"), ("🗓️", "螺旋日历"), ("📇", "卡片索引"), ("📈", "上升图表"),("📉", "下降图表"), ("📊", "条形图"), ("📋", "剪贴板"), ("📌", "图钉"), ("📍", "圆图钉"),("📎", "回形针"), ("🖇️", "连接的回形针"), ("📏", "直尺"), ("📐", "三角尺"), ("✂️", "剪刀"),("🗃️", "卡片盒"), ("🗄️", "文件柜"), ("🗑️", "废纸篓"), ("🔒", "锁定"), ("🔓", "解锁"),("🔏", "墨水笔锁定"), ("🔐", "钥匙锁定"), ("🔑", "钥匙"), ("🗝️", "旧钥匙"), ("🔨", "锤子"),("🪓", "斧头"), ("⛏️", "镐"), ("⚒️", "锤子和镐"), ("🛠️", "锤子和扳手"), ("🗡️", "匕首"),("⚔️", "交叉剑"), ("🔫", "手枪"), ("🪃", "回旋镖"), ("🏹", "弓箭"), ("🛡️", "盾牌"),("🪚", "木锯"), ("🔧", "扳手"), ("🪛", "螺丝刀"), ("🔩", "螺母螺栓"), ("⚙️", "齿轮"),("🗜️", "夹钳"), ("⚖️", "天平"), ("🦯", "盲杖"), ("🔗", "链接"), ("⛓️", "链条"),("🪝", "钩子"), ("🧰", "工具箱"), ("🧲", "磁铁"), ("🪜", "梯子"), ("⚗️", "蒸馏器"),("🧪", "试管"), ("🧫", "培养皿"), ("🧬", "DNA"), ("🔬", "显微镜"), ("🔭", "望远镜"),("📡", "卫星天线"), ("💉", "注射器"), ("🩸", "血滴"), ("💊", "药丸"), ("🩹", "创可贴"),("🩺", "听诊器"), ("🚪", "门"), ("🛗", "电梯"), ("🪞", "镜子"), ("🪟", "窗户"),("🛏️", "床"), ("🛋️", "沙发灯"), ("🪑", "椅子"), ("🚽", "马桶"), ("🪠", "马桶刷"),("🚿", "淋浴"), ("🛁", "浴缸"), ("🪤", "捕鼠器"), ("🪒", "剃刀"), ("🧴", "乳液瓶"),("🧷", "安全别针"), ("🧹", "扫帚"), ("🧺", "篮子"), ("🧻", "卷纸"), ("🪣", "桶"),("🧼", "肥皂"), ("🪥", "牙刷"), ("🧽", "海绵"), ("🧯", "灭火器"), ("🛒", "购物车"),("🚬", "香烟"), ("⚰️", "棺材"), ("🪦", "墓碑"), ("⚱️", "骨灰盒"), ("🪧", "标语牌"),("🏧", "ATM"), ("🚮", "垃圾桶"), ("🚰", "饮用水"), ("♿", "轮椅"), ("🚹", "男厕所"),("🚺", "女厕所"), ("🚻", "卫生间"), ("🚼", "婴儿"), ("🚾", "厕所"), ("🛂", "护照检查"),("🛃", "海关"), ("🛄", "行李领取"), ("🛅", "行李寄存"), ("⚠️", "警告"), ("🚸", "儿童过路"),("⛔", "禁止进入"), ("🚫", "禁止"), ("🚳", "禁止自行车"), ("🚭", "禁止吸烟"), ("🚯", "禁止乱扔"),("🚱", "非饮用水"), ("🚷", "禁止行人"), ("📵", "禁止手机"), ("🔞", "18禁"), ("☢️", "放射性"),("☣️", "生物危害")],"🔣 符号": [("❤️", "红心"), ("🧡", "橙心"), ("💛", "黄心"), ("💚", "绿心"), ("💙", "蓝心"),("💜", "紫心"), ("🤎", "棕心"), ("🖤", "黑心"), ("🤍", "白心"), ("💔", "心碎"),("❣️", "心叹号"), ("💕", "两颗爱心"), ("💞", "旋转爱心"), ("💓", "跳动爱心"), ("💗", "成长爱心"),("💖", "闪烁爱心"), ("💘", "爱心箭"), ("💝", "爱心礼带"), ("💟", "心形装饰"), ("☮️", "和平"),("✝️", "拉丁十字"), ("☪️", "星月"), ("🕉️", "唵"), ("☸️", "法轮"), ("♈", "白羊"),("♉", "金牛"), ("♊", "双子"), ("♋", "巨蟹"), ("♌", "狮子"), ("♍", "处女"),("♎", "天秤"), ("♏", "天蝎"), ("♐", "射手"), ("♑", "摩羯"), ("♒", "水瓶"),("♓", "双鱼"), ("⛎", "蛇夫"), ("🔯", "六角星"), ("♻️", "回收"), ("⚛️", "原子"),("🕎", "烛台"), ("☯️", "阴阳"), ("✡️", "大卫之星"), ("🔰", "初学者"), ("🆔", "ID按钮"),("⚕️", "医疗"), ("♾️", "无限"), ("🆚", "VS按钮"), ("📛", "名牌"), ("🔱", "三叉戟"),("⭕", "大红圈"), ("✅", "白勾"), ("☑️", "带勾方框"), ("✔️", "粗勾"), ("❌", "叉"),("❎", "带叉圆圈"), ("➰", "卷环"), ("➿", "双卷环"), ("〽️", "部分标记"), ("✳️", "八星"),("✴️", "八角星"), ("❇️", "火花"), ("‼️", "双叹号"), ("⁉️", "叹问号"), ("❓", "红问号"),("❔", "白问号"), ("❕", "白叹号"), ("❗", "红叹号"), ("〰️", "波浪破折号"), ("©️", "版权"),("®️", "注册"), ("™️", "商标"), ("#️⃣", "井号"), ("*️⃣", "星号"), ("0️⃣", "0"),("1️⃣", "1"), ("2️⃣", "2"), ("3️⃣", "3"), ("4️⃣", "4"), ("5️⃣", "5"),("6️⃣", "6"), ("7️⃣", "7"), ("8️⃣", "8"), ("9️⃣", "9"), ("🔟", "10"),("🔠", "大写"), ("🔡", "小写"), ("🔢", "数字"), ("🔣", "符号"), ("🔤", "字母"),("🅰️", "A按钮"), ("🆎", "AB按钮"), ("🅱️", "B按钮"), ("🆑", "CL按钮"), ("🆒", "COOL按钮"),("🆓", "FREE按钮"), ("ℹ️", "信息"), ("Ⓜ️", "M圆圈"), ("🆕", "NEW按钮"), ("🆖", "NG按钮"),("🅾️", "O按钮"), ("🆗", "OK按钮"), ("🅿️", "P按钮"), ("🆘", "SOS按钮"), ("🆙", "UP按钮"),("🈁", '日文"这里"按钮'), ("🈂️", '日文"服务费"按钮'), ("🈷️", '日文"月"按钮'), ("🈶", '日文"有"按钮'), ("🈯", '日文"指"按钮'),("🉐", '日文"得"按钮'), ("🈹", '日文"割"按钮'), ("🈚", "日文无按钮"), ("🈲", "日文禁按钮"), ("🉑", "日文可按钮"),("🈸", "日文申按钮"), ("🈴", "日文合按钮"), ("🈳", "日文空按钮"), ("㊗️", "日文祝按钮"), ("㊙️", "日文秘按钮"),("🈺", "日文营按钮"), ("🈵", "日文满按钮"), ("🔴", "红圈"), ("🟠", "橙圈"), ("🟡", "黄圈"),("🟢", "绿圈"), ("🔵", "蓝圈"), ("🟣", "紫圈"), ("🟤", "棕圈"), ("⚫", "黑圈"),("⚪", "白圈"), ("🟥", "红方块"), ("🟧", "橙方块"), ("🟨", "黄方块"), ("🟩", "绿方块"),("🟦", "蓝方块"), ("🟪", "紫方块"), ("🟫", "棕方块"), ("⬛", "黑方块"), ("⬜", "白方块"),("◼️", "黑中方块"), ("◻️", "白中方块"), ("◾", "黑中小方块"), ("◽", "白中小方块"), ("▪️", "黑小方块"),("▫️", "白小方块"), ("🔶", "大橙钻石"), ("🔷", "大蓝钻石"), ("🔸", "小橙钻石"), ("🔹", "小蓝钻石"), ("🔺", "红三角"),("🔻", "倒红三角"), ("💠", "钻石点"), ("🔘", "单选按钮"), ("🔳", "白方按钮"), ("🔲", "黑方按钮"), ("🏁", "方格旗"),("🚩", "三角旗"), ("🎌", "交叉旗"), ("🏴", "黑旗"), ("🏳️", "白旗"), ("🏳️‍🌈", "彩虹旗"),("🏳️‍⚧️", "跨性别旗"), ("🏴‍☠️", "海盗旗")],"🎵 音乐与声音": [("🎵", "音符"), ("🎶", "多个音符"), ("🎼", "乐谱"), ("🎙️", "录音室麦克风"), ("🎚️", "音量滑块"),("🎛️", "控制旋钮"), ("🎤", "麦克风"), ("🎧", "耳机"), ("📻", "收音机"), ("🎷", "萨克斯"),("🪗", "手风琴"), ("🎸", "吉他"), ("🎹", "钢琴"), ("🎺", "小号"), ("🎻", "小提琴"),("🪕", "班卓琴"), ("🥁", "鼓"), ("🪘", "长鼓"), ("📢", "喇叭"), ("📣", "扩音器"),("📯", "邮号"), ("🔔", "铃铛"), ("🔕", "无铃铛"), ("🎼", "乐谱")]}def populate_category_tabs(self):"""填充分类标签页"""for category, emojis in self.categories.items():tab = QWidget()layout = QVBoxLayout(tab)layout.setContentsMargins(4, 4, 4, 4)scroll = QScrollArea()scroll.setWidgetResizable(True)scroll.setFrameShape(QFrame.NoFrame)container = QWidget()container_layout = QVBoxLayout(container)container_layout.setContentsMargins(4, 4, 4, 4)emoji_list = QListWidget()emoji_list.setViewMode(QListWidget.IconMode)emoji_list.setResizeMode(QListWidget.Adjust)emoji_list.setGridSize(QSize(80, 80))emoji_list.setSpacing(8)for emoji, name in emojis:item = QListWidgetItem(emoji)item.setData(Qt.UserRole, emoji)item.setData(Qt.ToolTipRole, f"{emoji} {name}")item.setFont(QFont("Segoe UI Emoji", 20))item.setSizeHint(QSize(80, 80))emoji_list.addItem(item)emoji_list.itemClicked.connect(self.copy_emoji_to_clipboard)container_layout.addWidget(emoji_list)scroll.setWidget(container)layout.addWidget(scroll)self.tabs.addTab(tab, category)def search_emojis(self):"""搜索表情"""search_text = self.search_input.text().lower().strip()self.search_results_list.clear()if not search_text:self.status_label.setText("输入关键词搜索表情...")returnfound_count = 0for category, emojis in self.categories.items():for emoji, name in emojis:if search_text in name.lower() or search_text in emoji.lower():item = QListWidgetItem(emoji)item.setData(Qt.UserRole, emoji)item.setData(Qt.ToolTipRole, f"{emoji} {name} ({category})")item.setFont(QFont("Segoe UI Emoji", 20))item.setSizeHint(QSize(80, 80))self.search_results_list.addItem(item)found_count += 1if found_count > 0:self.tabs.setCurrentWidget(self.search_results_tab)self.status_label.setText(f"找到 {found_count} 个表情")else:self.status_label.setText("没有找到匹配的表情")def copy_emoji_to_clipboard(self, item):"""复制表情到剪贴板"""emoji = item.data(Qt.UserRole)clipboard = QApplication.clipboard()clipboard.setText(emoji)# 显示复制成功的提示self.statusBar().showMessage(f"已复制: {emoji}", 2000)if __name__ == "__main__":app = QApplication(sys.argv)# 设置全局字体font = QFont()font.setFamily("Microsoft YaHei")font.setPointSize(10)app.setFont(font)window = EmojiGenerator()window.show()sys.exit(app.exec_())

🏆 技术总结

创新点分析

  1. 性能优化方案
    • 采用延迟加载技术
    • 实现动态渲染机制
    • 优化搜索算法时间复杂度
  2. 交互设计亮点
    • 完善的工具提示系统
    • 流畅的动画效果
    • 符合人体工学的操作流程

扩展方向

  1. 添加自定义emoji功能
  2. 实现收藏夹管理
  3. 增加使用频率统计
  4. 开发插件系统

📚 参考资料

  1. [Unicode Emoji标准文档]
  2. [PyQt5官方文档]
  3. [Qt样式表参考]
  4. [Python GUI设计最佳实践]

作者声明:本文代码采用MIT开源协议,欢迎自由使用和修改。如有技术问题,可在评论区留言讨论。


http://www.hkcw.cn/article/aLOVeRLxVY.shtml

相关文章

当 “欧洲版 Cursor” 遇上安全危机

在 AI 编程助手蓬勃发展的当下,安全问题正成为行业不容忽视的隐忧。近期,AI 编程助手公司 Replit 与号称 “欧洲版 Cursor” 的 Lovable 之间,因安全漏洞问题掀起了一场风波,引发了业界的广泛关注。​ Replit 的员工 Matt Palmer…

Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?

无论是想要学习人工智能当做主业营收,还是像我一样作为开发工程师但依然要运用这个颠覆开发的时代宠儿,都有必要了解、学习一下人工智能。 近期发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,入行门槛低&#x…

遥感影像建筑物变化检测

文章目录 效果1、环境安装2、项目下载3、数据集下载4、模型训练5、模型推理6、推理结果7、批量推理效果 1、环境安装 参考文章 搭建Pytorch的GPU环境超详细 win10安装3DGS环境(GPU)超详细 测试GPU环境可用 2、项目下载 https://gitcode.com/gh_mirrors/ch/change_detectio…

vue+cesium示例:地形开挖(附源码下载)

基于cesium和vue绘制多边形实现地形开挖效果,适合学习Cesium与前端框架结合开发3D可视化项目。 demo源码运行环境以及配置 运行环境:依赖Node安装环境,demo本地Node版本:推荐v18。 运行工具:vscode或者其他工具。 配置方式&#x…

Ubuntu 系统部署 MySQL 入门篇

一、安装 MySQL 1.1 更新软件包 在终端中执行以下命令,更新系统软件包列表,确保安装的是最新版本的软件: sudo apt update 1.2 安装 MySQL 执行以下命令安装 MySQL 服务端: sudo apt install mysql-server 在安装过程中&…

机器学习——主成分分析PCA

主成分分析—PCA 一、主成分分析简介1. PCA概述2. 降维 & PCA3. PCA的优缺点 二、PCA的数学基础1. 方差2. 协方差矩阵3. 特征值和特征向量 三、PCA的算法流程1. 标准化数据2. 计算协方差矩阵3.计算特征值和特征向量4. 选择主成分5. 数据投影 四、代码分析(人脸识…

连接关键点:使用 ES|QL 联接实现更丰富的可观测性洞察

作者:来自 Elastic Luca Wintergerst ES|QL 的 LOOKUP JOIN 现已进入技术预览阶段,它允许你在查询时对日志、指标和追踪进行丰富处理,无需在摄取时进行非规范化。动态添加部署、基础设施或业务上下文,减少存储占用,加速…

专家:乌军“蛛网”行动影响深远 无人机开启新战局

乌克兰在大规模使用无人机发动特种攻击方面再次震惊了世界。6月1日,乌克兰国家安全局对俄罗斯境内多地的军用机场发动大规模无人机攻击,声称摧毁了“多达41架战略轰炸机”。俄罗斯方面承认乌军无人机成功袭击的事实,但表示损失没有那么大。西方媒体认为,乌方使用的这种无人…

西北华北华南大片区域高温来袭 多地将迎35℃以上高温

今明两天(6月3日至4日),我国降雨主要出现在云南和华南沿海、东北地区等地,局地还可能伴有强对流天气。随着高压脊东移,北方大部气温逐渐升高,华北、黄淮等地高温天气将发展增多,南方多地5日起也将加入高温行列。昨天,冷空气南下导致南方强降雨区域南压至华南和云南一带…

美拆解首艘核动力航母要花多少钱 5亿多美元启动拆解

美国《星条旗报》网站报道,世界上第一艘核动力航母“企业”号将在亚拉巴马州拆解。佛蒙特州的一家公司获得了超过5亿美元的资金,用于拆除停放在亚拉巴马州莫比尔市的这艘历史悠久的航母。五角大楼发布的采购公告显示,位于佛蒙特州弗农的北极星海事拆卸服务有限责任公司获得了…

基于AI的6个学术搜索工具推荐:功能特点与适用场景分析

和传统的学术搜索平台pubmed、google scholar相比,AI驱动的学术搜索引擎不再依赖简单的关键词匹配,而是通过理解用户意图和语境,实现更精准、更具上下文关联的检索结果,并能够将搜索内容总结为完整答案。 除了Perplexity和秘塔AI搜…

scrapy练习笔记

scrapy练习 文章目录 scrapy练习一、scrapy安装二、scrapy基本流程2.1 学习目标2.2 创建一个新项目2.3 创建Item2.4 解析 Response2.5 使用 Item2.6 开始爬取 三、爬取多页3.1 练习3.2 输出格式3.3 使用 Item Pipeline 暂时到这 一、scrapy安装 官网:https://www.s…

cmake学习1

基本起点 本笔记的主要参考文献是cmake文档,对文档的二次提炼和补充学习。 1. cmake_minimum_required() 任何项目的最顶层CMakeLists.txt都必须首先使用 cmake_minimum_required() 命令指定最低 CMake 版本。这建立策略设置并确保以下 CMake 函数以兼容的 CMake…

基与OpenCV实现单目相机实时追踪对物体的测量算法(Android版)

本人原创转载请注明出处 前言 本算法是基于摄像头到测量物体的已知距离和摄像头像素焦距的前提下测量物体的宽高,并根据参照物的实际尺寸测量其他物体。 效果图 准备环境 1.首先硬件你要有一个摄像头,最好是USB即插即用免驱的 2.我使用的是12寸的安…

【计算机视觉】单目深度估计模型-Depth Anything-V2

概述 本篇将简单介绍Depth Anything V2单目深度估计模型,该模型旨在解决现有的深度估计模型在处理复杂场景、透明或反射物体时的性能限制。与前一代模型相比,V2版本通过采用合成图像训练、增加教师模型容量,并利用大规模伪标签现实数据进行学…

常见离线语音识别模块功能说明——天问ASR;机芯智能;海凌科;轻语音

本文章从开发方式及功能等方面上进行说明,便于开发者进行选择与开发。 本文章依据截至2024年8月1日各网站资料进行整理编写。 总结: 开发方式上: 天文ASR 有着最灵活的开发方式,可完全按照程序员意愿进行开发,同时有…

Whisper.cpp + GPU 加速全攻略:Mac M 芯片高效转录音频教程

内容预告 本文将手把手教你如何利用 GPU 加速,在 Mac M 芯片上使用 Whisper 进行音频转文字,大幅提升转录效率。 本教程涵盖: Whisper.cpp 简介:为什么它适用于本地语音转写?Mac M 芯片的 GPU 加速:如何…

ROS2 与机器人视觉入门教程(ROS2 OpenCV)

系列文章目录 目录 系列文章目录 前言 一、 1.1 先决条件 1.1.1 安装 0. 安装要求 1. 安装 ROS2: 2. cv_bridge 1.2 获取机器人视觉库简介: 1.2.1 克隆该资源库 1.2.2 下载附加数据 1.2.3 编译代码 1.3 测试代码 二、ROS2 中的图像发布者…

计算机视觉:扩散模型(Diffusion Models)在图像生成中的突破

计算机视觉:扩散模型(Diffusion Models)在图像生成中的突破 一、前言二、扩散模型基础概念​2.1 马尔可夫链(Markov Chain)​2.2 扩散过程(Diffusion Process)​2.3 逆扩散过程(Reverse Diffusion Process)​三、扩散模型在图像生成中的原理​3.1 训练阶段​3.2 推理阶…

深入了解视频质量诊断的关键技术要点

本文还有配套的精品资源,点击获取 简介:视频质量诊断是IT行业中的关键任务,它包括多个领域的专业知识,用于确保视频内容的高质量呈现。本文将详细解析与视频质量诊断相关的各个技术要点,包括视频编码技术、分辨率和…