基于Python+PyQt5打造一個跨平臺Emoji表情管理神器
概述
在當(dāng)今數(shù)字化社交時代,Emoji已成為全球通用的視覺語言。本文介紹如何使用Python和PyQt5開發(fā)一個功能全面的Emoji工具箱,包含完整的Unicode 14.0標(biāo)準(zhǔn)表情庫,提供分類瀏覽、智能搜索和快捷復(fù)制等功能。該項目具有以下技術(shù)亮點:
- 采用MVC架構(gòu)設(shè)計
- 支持跨平臺運行(Windows/macOS/Linux)
- 實現(xiàn)高性能的emoji渲染和搜索
- 提供現(xiàn)代化的UI交互體驗
- 完整包含1800+個標(biāo)準(zhǔn)emoji
功能特性
1. 全量Emoji集合
涵蓋9大分類體系
每個emoji包含官方名稱標(biāo)注
支持最新Unicode 14.0標(biāo)準(zhǔn)
2. 智能搜索系統(tǒng)
支持中文/英文關(guān)鍵詞搜索
實時顯示匹配結(jié)果
搜索結(jié)果包含分類路徑
3. 高效交互設(shè)計
一鍵復(fù)制emoji到剪貼板
懸停顯示詳細信息
自適應(yīng)網(wǎng)格布局
4. 現(xiàn)代化UI
扁平化設(shè)計風(fēng)格
平滑的動畫過渡
深色/淺色主題支持
展示效果
主界面布局
分類瀏覽效果
# 分類數(shù)據(jù)結(jié)構(gòu)示例 categories = { "?? 笑臉與情感": [("??", "笑臉"), ("??", "大笑")], "?? 人物與身體": [("??", "揮手"), ("??", "抬手")] }
搜索功能演示
開發(fā)步驟詳解
1. 環(huán)境準(zhǔn)備
pip install PyQt5==5.15.7 pip install pyqt5-tools
2. 核心實現(xiàn)流程
數(shù)據(jù)層構(gòu)建:
def load_emoji_data(self): self.categories = { "分類名稱": [("??", "笑臉"), ...], ... }
UI界面開發(fā):
class MainWindow(QMainWindow): def __init__(self): # 初始化搜索框、標(biāo)簽頁等組件 self.init_ui()
業(yè)務(wù)邏輯實現(xiàn):
def search_emojis(self): # 實現(xiàn)搜索功能 for emoji, name in emojis: if keyword in name.lower(): # 添加搜索結(jié)果
代碼深度解析
1. 高性能渲染方案
# 使用QListWidget的IconMode實現(xiàn)網(wǎng)格布局 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存儲原始數(shù)據(jù) item.setData(Qt.UserRole, emoji)
3. UI優(yōu)化技巧
/* 使用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, QPalette class EmojiGenerator(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('Emoji文字庫工具箱') self.setGeometry(100, 100, 1000, 800) self.setMinimumSize(800, 600) # 設(shè)置窗口圖標(biāo) try: self.setWindowIcon(QIcon('emoji_icon.png')) except: pass # 初始化UI self.init_ui() # 加載emoji數(shù)據(jù) self.load_emoji_data() # 填充分類標(biāo)簽頁 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) # 標(biāo)簽頁 self.tabs = QTabWidget() self.tabs.setTabPosition(QTabWidget.North) self.tabs.setMovable(True) # 搜索結(jié)果標(biāo)簽頁 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, "?? 搜索結(jié)果") main_layout.addWidget(search_frame) main_layout.addWidget(self.tabs) main_widget.setLayout(main_layout) self.setCentralWidget(main_widget) # 狀態(tài)欄 self.status_label = QLabel("準(zhǔn)備就緒") self.statusBar().addPermanentWidget(self.status_label) # 設(shè)置樣式 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數(shù)據(jù)""" self.categories = { "?? 笑臉與情感": [ ("??", "笑臉"), ("??", "大笑"), ("??", "開心笑"), ("??", "笑嘻嘻"), ("??", "瞇眼笑"), ("??", "流汗笑"), ("??", "笑得打滾"), ("??", "笑哭"), ("??", "微笑"), ("??", "倒臉"), ("??", "眨眼"), ("??", "害羞笑"), ("??", "天使笑"), ("??", "愛心笑臉"), ("??", "愛心眼"), ("??", "星星眼"), ("??", "飛吻"), ("??", "親吻"), ("??", "閉眼親吻"), ("??", "微笑親吻"), ("??", "含淚笑"), ("??", "美味臉"), ("??", "吐舌"), ("??", "單眼吐舌"), ("??", "滑稽臉"), ("??", "瞇眼吐舌"), ("??", "金錢臉"), ("??", "擁抱臉"), ("??", "捂嘴"), ("??", "噓聲"), ("??", "思考"), ("??", "拉鏈嘴"), ("??", "懷疑"), ("??", "中性"), ("??", "無表情"), ("??", "無嘴"), ("??", "得意"), ("??", "不高興"), ("??", "翻白眼"), ("??", "齜牙"), ("??", "說謊"), ("??", "放松"), ("??", "憂郁"), ("??", "困倦"), ("??", "流口水"), ("??", "睡覺"), ("??", "口罩"), ("??", "發(fā)燒"), ("??", "受傷"), ("??", "惡心"), ("??", "嘔吐"), ("??", "打噴嚏"), ("??", "熱"), ("??", "冷"), ("??", "頭暈"), ("??", "暈頭轉(zhuǎn)向"), ("??", "爆炸頭"), ("??", "牛仔帽"), ("??", "派對"), ("??", "墨鏡"), ("??", "書呆子"), ("??", "單片眼鏡"), ("??", "困惑"), ("??", "擔(dān)心"), ("??", "輕微不高興"), ("??", "不高興"), ("??", "驚訝"), ("??", "沉默"), ("??", "震驚"), ("??", "臉紅"), ("??", "懇求"), ("??", "皺眉驚訝"), ("??", "痛苦"), ("??", "恐懼"), ("??", "焦慮冷汗"), ("??", "失望但解脫"), ("??", "哭泣"), ("??", "大哭"), ("??", "尖叫恐懼"), ("??", "困惑"), ("??", "忍耐"), ("??", "失望"), ("??", "冷汗"), ("??", "疲憊"), ("??", "疲倦"), ("??", "打哈欠"), ("??", "傲慢"), ("??", "憤怒"), ("??", "生氣"), ("??", "臟話"), ("??", "惡魔笑"), ("??", "惡魔"), ("??", "骷髏"), ("??", "骷髏骨頭"), ("??", "便便"), ("??", "小丑"), ("??", "妖怪"), ("??", "天狗"), ("??", "鬼"), ("??", "外星人"), ("??", "外星怪物"), ("??", "機器人"), ("??", "貓笑臉"), ("??", "貓瞇眼笑"), ("??", "貓笑哭"), ("??", "貓愛心眼"), ("??", "貓得意笑"), ("??", "貓親吻"), ("??", "貓驚訝"), ("??", "貓哭泣"), ("??", "貓生氣"), ("??", "不看邪惡"), ("??", "不聽邪惡"), ("??", "不說邪惡"), ("??", "唇印"), ("??", "情書"), ("??", "愛心箭"), ("??", "愛心禮帶"), ("??", "閃爍愛心"), ("??", "成長愛心"), ("??", "跳動愛心"), ("??", "旋轉(zhuǎn)愛心"), ("??", "兩顆愛心"), ("??", "心形裝飾"), ("??", "心嘆號"), ("??", "心碎"), ("??", "紅心"), ("??", "橙心"), ("??", "黃心"), ("??", "綠心"), ("??", "藍心"), ("??", "紫心"), ("??", "棕心"), ("??", "黑心"), ("??", "白心"), ("??", "一百分"), ("??", "憤怒符號"), ("??", "碰撞"), ("??", "眩暈"), ("??", "汗滴"), ("??", "疾跑"), ("???", "洞"), ("??", "炸彈"), ("??", "對話氣泡"), ("???????", "眼睛氣泡"), ("???", "左對話氣泡"), ("???", "右憤怒氣泡"), ("??", "思考氣泡"), ("??", "zzz") ], "?? 人物與身體": [ ("??", "揮手"), ("??", "抬手"), ("???", "張開手"), ("?", "舉手"), ("??", "瓦肯手勢"), ("??", "OK手勢"), ("??", "捏手指"), ("??", "勝利手勢"), ("??", "交叉手指"), ("??", "愛你的手勢"), ("??", "搖滾手勢"), ("??", "打電話手勢"), ("??", "左指"), ("??", "右指"), ("??", "上指"), ("??", "中指"), ("??", "下指"), ("??", "食指上指"), ("??", "大拇指"), ("??", "拇指向下"), ("?", "拳頭"), ("??", "出拳"), ("??", "左拳"), ("??", "右拳"), ("??", "鼓掌"), ("??", "舉手歡呼"), ("??", "張開雙手"), ("??", "掌心向上"), ("??", "握手"), ("??", "祈禱"), ("??", "寫字"), ("??", "涂指甲油"), ("??", "自拍"), ("??", "肌肉"), ("??", "機械臂"), ("??", "機械腿"), ("??", "腿"), ("??", "腳"), ("??", "耳朵"), ("??", "助聽器耳朵"), ("??", "鼻子"), ("??", "大腦"), ("??", "牙齒"), ("??", "骨頭"), ("??", "眼睛"), ("???", "單眼"), ("??", "舌頭"), ("??", "嘴巴"), ("??", "嬰兒"), ("??", "兒童"), ("??", "男孩"), ("??", "女孩"), ("??", "成人"), ("??", "男人"), ("??", "女人"), ("??", "胡子"), ("???♂?", "男胡子"), ("???♀?", "女胡子"), ("?????", "紅發(fā)男"), ("?????", "紅發(fā)女"), ("?????", "卷發(fā)男"), ("?????", "卷發(fā)女"), ("?????", "白發(fā)男"), ("?????", "白發(fā)女"), ("?????", "禿頭男"), ("?????", "禿頭女"), ("??", "金發(fā)"), ("???♂?", "金發(fā)男"), ("???♀?", "金發(fā)女"), ("??", "老人"), ("??", "老爺爺"), ("??", "老奶奶"), ("??", "皺眉"), ("???♂?", "男皺眉"), ("???♀?", "女皺眉"), ("??", "撅嘴"), ("???♂?", "男撅嘴"), ("???♀?", "女撅嘴"), ("??", "不行"), ("???♂?", "男不行"), ("???♀?", "女不行"), ("??", "可以"), ("???♂?", "男可以"), ("???♀?", "女可以"), ("??", "告知"), ("???♂?", "男告知"), ("???♀?", "女告知"), ("??", "舉手"), ("???♂?", "男舉手"), ("???♀?", "女舉手"), ("??", "聾人"), ("???♂?", "男聾人"), ("???♀?", "女聾人"), ("??", "鞠躬"), ("???♂?", "男鞠躬"), ("???♀?", "女鞠躬"), ("??", "捂臉"), ("???♂?", "男捂臉"), ("???♀?", "女捂臉"), ("??", "聳肩"), ("???♂?", "男聳肩"), ("???♀?", "女聳肩"), ("?????", "男醫(yī)生"), ("?????", "女醫(yī)生"), ("?????", "男學(xué)生"), ("?????", "女學(xué)生"), ("?????", "男老師"), ("?????", "女老師"), ("?????", "男法官"), ("?????", "女法官"), ("?????", "男農(nóng)民"), ("?????", "女農(nóng)民"), ("?????", "男廚師"), ("?????", "女廚師"), ("?????", "男技工"), ("?????", "女技工"), ("?????", "男工人"), ("?????", "女工人"), ("?????", "男職員"), ("?????", "女職員"), ("?????", "男科學(xué)家"), ("?????", "女科學(xué)家"), ("?????", "男技術(shù)員"), ("?????", "女技術(shù)員"), ("?????", "男歌手"), ("?????", "女歌手"), ("?????", "男藝術(shù)家"), ("?????", "女藝術(shù)家"), ("?????", "男飛行員"), ("?????", "女飛行員"), ("?????", "男宇航員"), ("?????", "女宇航員"), ("?????", "男消防員"), ("?????", "女消防員"), ("??", "警察"), ("???♂?", "男警察"), ("???♀?", "女警察"), ("???", "偵探"), ("????♂?", "男偵探"), ("????♀?", "女偵探"), ("??", "衛(wèi)兵"), ("???♂?", "男衛(wèi)兵"), ("???♀?", "女衛(wèi)兵"), ("??", "忍者"), ("??", "建筑工人"), ("???♂?", "男建筑工人"), ("???♀?", "女建筑工人"), ("??", "王子"), ("??", "公主"), ("??", "包頭巾"), ("???♂?", "男包頭巾"), ("???♀?", "女包頭巾"), ("??", "瓜皮帽"), ("??", "頭巾"), ("??", "穿禮服"), ("???♂?", "男穿禮服"), ("???♀?", "女穿禮服"), ("??", "戴面紗"), ("???♂?", "男戴面紗"), ("???♀?", "女戴面紗"), ("??", "孕婦"), ("??", "哺乳"), ("?????", "女哺乳"), ("?????", "男哺乳"), ("?????", "人哺乳"), ("??", "天使"), ("??", "圣誕老人"), ("??", "圣誕奶奶"), ("?????", "圣誕人"), ("??", "超級英雄"), ("???♂?", "男超級英雄"), ("???♀?", "女超級英雄"), ("??", "超級反派"), ("???♂?", "男超級反派"), ("???♀?", "女超級反派"), ("??", "法師"), ("???♂?", "男法師"), ("???♀?", "女法師"), ("??", "精靈"), ("???♂?", "男精靈"), ("???♀?", "女精靈"), ("??", "吸血鬼"), ("???♂?", "男吸血鬼"), ("???♀?", "女吸血鬼"), ("??", "人魚"), ("???♂?", "男人魚"), ("???♀?", "女人魚"), ("??", "精靈"), ("???♂?", "男精靈"), ("???♀?", "女精靈"), ("??", "精靈"), ("???♂?", "男精靈"), ("???♀?", "女精靈"), ("??", "僵尸"), ("???♂?", "男僵尸"), ("???♀?", "女僵尸"), ("??", "按摩"), ("???♂?", "男按摩"), ("???♀?", "女按摩"), ("??", "理發(fā)"), ("???♂?", "男理發(fā)"), ("???♀?", "女理發(fā)"), ("??", "行人"), ("???♂?", "男行人"), ("???♀?", "女行人"), ("??", "站立"), ("???♂?", "男站立"), ("???♀?", "女站立"), ("??", "跪"), ("???♂?", "男跪"), ("???♀?", "女跪"), ("??", "跑步"), ("???♂?", "男跑步"), ("???♀?", "女跑步"), ("??", "跳舞女"), ("??", "跳舞男"), ("???", "懸浮人"), ("??", "兔女郎"), ("???♂?", "男兔女郎"), ("???♀?", "女兔女郎"), ("??", "桑拿"), ("???♂?", "男桑拿"), ("???♀?", "女桑拿"), ("??", "攀巖"), ("???♂?", "男攀巖"), ("???♀?", "女攀巖"), ("??", "擊劍"), ("??", "賽馬"), ("??", "滑雪"), ("??", "滑雪板"), ("???", "高爾夫"), ("????♂?", "男高爾夫"), ("????♀?", "女高爾夫"), ("??", "沖浪"), ("???♂?", "男沖浪"), ("???♀?", "女沖浪"), ("??", "劃船"), ("???♂?", "男劃船"), ("???♀?", "女劃船"), ("??", "游泳"), ("???♂?", "男游泳"), ("???♀?", "女游泳"), ("??", "籃球"), ("???♂?", "男籃球"), ("???♀?", "女籃球"), ("???", "舉重"), ("????♂?", "男舉重"), ("????♀?", "女舉重"), ("??", "自行車"), ("???♂?", "男自行車"), ("???♀?", "女自行車"), ("??", "山地車"), ("???♂?", "男山地車"), ("???♀?", "女山地車"), ("??", "側(cè)手翻"), ("???♂?", "男側(cè)手翻"), ("???♀?", "女側(cè)手翻"), ("??", "摔跤"), ("???♂?", "男摔跤"), ("???♀?", "女摔跤"), ("??", "水球"), ("???♂?", "男水球"), ("???♀?", "女水球"), ("??", "手球"), ("???♂?", "男手球"), ("???♀?", "女手球"), ("??", "雜耍"), ("???♂?", "男雜耍"), ("???♀?", "女雜耍"), ("??", "蓮花坐"), ("???♂?", "男蓮花坐"), ("???♀?", "女蓮花坐"), ("??", "洗澡"), ("??", "床上"), ("????????", "牽手"), ("??", "兩女牽手"), ("??", "男女牽手"), ("??", "兩男牽手"), ("??", "親吻"), ("???????????", "女吻男"), ("???????????", "男吻男"), ("???????????", "女吻女"), ("??", "情侶"), ("????????", "女愛男"), ("????????", "男愛男"), ("????????", "女愛女"), ("??", "家庭"), ("????????", "家庭男女孩"), ("????????", "家庭男女女"), ("???????????", "家庭男女女男"), ("???????????", "家庭男女男男"), ("???????????", "家庭男女女女"), ("????????", "家庭男男男"), ("????????", "家庭男男女"), ("???????????", "家庭男男女男"), ("???????????", "家庭男男男男"), ("???????????", "家庭男男女女"), ("????????", "家庭女女男"), ("????????", "家庭女女女"), ("???????????", "家庭女女女男"), ("???????????", "家庭女女男男"), ("???????????", "家庭女女女女"), ("?????", "父子"), ("????????", "父子男"), ("?????", "父女"), ("????????", "父女男"), ("????????", "父女女"), ("?????", "母子"), ("????????", "母子男"), ("?????", "母女"), ("????????", "母女男"), ("????????", "母女女"), ("???", "說話"), ("??", "半身像"), ("??", "半身像組"), ("??", "擁抱"), ("??", "腳印") ], "?? 動物與自然": [ ("??", "猴臉"), ("??", "猴子"), ("??", "大猩猩"), ("??", "猩猩"), ("??", "狗臉"), ("??", "狗"), ("??", "導(dǎo)盲犬"), ("?????", "服務(wù)犬"), ("??", "貴賓犬"), ("??", "狼"), ("??", "狐貍"), ("??", "浣熊"), ("??", "貓臉"), ("??", "貓"), ("????", "黑貓"), ("??", "獅子"), ("??", "虎臉"), ("??", "虎"), ("??", "豹"), ("??", "馬臉"), ("??", "馬"), ("??", "獨角獸"), ("??", "斑馬"), ("??", "鹿"), ("??", "野牛"), ("??", "牛臉"), ("??", "牛"), ("??", "水牛"), ("??", "奶牛"), ("??", "豬臉"), ("??", "豬"), ("??", "野豬"), ("??", "豬鼻"), ("??", "公羊"), ("??", "綿羊"), ("??", "山羊"), ("??", "駱駝"), ("??", "雙峰駱駝"), ("??", "羊駝"), ("??", "長頸鹿"), ("??", "大象"), ("??", "猛犸象"), ("??", "犀牛"), ("??", "河馬"), ("??", "鼠臉"), ("??", "老鼠"), ("??", "倉鼠"), ("??", "倉鼠"), ("??", "兔臉"), ("??", "兔子"), ("???", "松鼠"), ("??", "海貍"), ("??", "刺猬"), ("??", "蝙蝠"), ("??", "熊"), ("?????", "北極熊"), ("??", "考拉"), ("??", "熊貓"), ("??", "樹懶"), ("??", "水獺"), ("??", "臭鼬"), ("??", "袋鼠"), ("??", "獾"), ("??", "爪印"), ("??", "火雞"), ("??", "雞"), ("??", "公雞"), ("??", "小雞破殼"), ("??", "小雞"), ("??", "正面小雞"), ("??", "鳥"), ("??", "企鵝"), ("???", "鴿子"), ("??", "鷹"), ("??", "鴨"), ("??", "天鵝"), ("??", "貓頭鷹"), ("??", "渡渡鳥"), ("??", "羽毛"), ("??", "火烈鳥"), ("??", "孔雀"), ("??", "鸚鵡"), ("??", "青蛙"), ("??", "鱷魚"), ("??", "烏龜"), ("??", "蜥蜴"), ("??", "蛇"), ("??", "龍臉"), ("??", "龍"), ("??", "蜥腳類恐龍"), ("??", "暴龍"), ("??", "噴水鯨"), ("??", "鯨魚"), ("??", "海豚"), ("??", "海豹"), ("??", "魚"), ("??", "熱帶魚"), ("??", "河豚"), ("??", "鯊魚"), ("??", "章魚"), ("??", "海螺"), ("??", "珊瑚"), ("??", "水母"), ("??", "蝸牛"), ("??", "蝴蝶"), ("??", "毛毛蟲"), ("??", "螞蟻"), ("??", "蜜蜂"), ("??", "甲蟲"), ("??", "瓢蟲"), ("??", "蟋蟀"), ("??", "蟑螂"), ("???", "蜘蛛"), ("???", "蜘蛛網(wǎng)"), ("??", "蝎子"), ("??", "蚊子"), ("??", "蒼蠅"), ("??", "蠕蟲"), ("??", "微生物"), ("??", "花束"), ("??", "櫻花"), ("??", "白花"), ("???", "玫瑰花結(jié)"), ("??", "玫瑰"), ("??", "枯萎的花"), ("??", "芙蓉"), ("??", "向日葵"), ("??", "開花"), ("??", "郁金香"), ("??", "風(fēng)信子"), ("??", "幼苗"), ("??", "盆栽"), ("??", "常青樹"), ("??", "落葉樹"), ("??", "棕櫚樹"), ("??", "仙人掌"), ("??", "稻穗"), ("??", "草藥"), ("??", "三葉草"), ("??", "四葉草"), ("??", "楓葉"), ("??", "落葉"), ("??", "風(fēng)吹葉"), ("??", "空巢"), ("??", "有蛋的巢"), ("??", "蘑菇") ], "?? 食物與飲料": [ ("??", "青蘋果"), ("??", "紅蘋果"), ("??", "梨"), ("??", "橙子"), ("??", "檸檬"), ("??", "香蕉"), ("??", "西瓜"), ("??", "葡萄"), ("??", "草莓"), ("??", "藍莓"), ("??", "甜瓜"), ("??", "櫻桃"), ("??", "桃子"), ("??", "芒果"), ("??", "菠蘿"), ("??", "椰子"), ("??", "獼猴桃"), ("??", "番茄"), ("??", "橄欖"), ("??", "牛油果"), ("??", "茄子"), ("??", "土豆"), ("??", "胡蘿卜"), ("??", "玉米"), ("???", "辣椒"), ("??", "甜椒"), ("??", "黃瓜"), ("??", "綠葉菜"), ("??", "西蘭花"), ("??", "大蒜"), ("??", "洋蔥"), ("??", "蘑菇"), ("??", "花生"), ("??", "豆子"), ("??", "栗子"), ("??", "面包"), ("??", "牛角面包"), ("??", "法棍"), ("??", "扁面包"), ("??", "椒鹽卷餅"), ("??", "貝果"), ("??", "煎餅"), ("??", "華夫餅"), ("??", "奶酪"), ("??", "肉骨頭"), ("??", "雞腿"), ("??", "肉塊"), ("??", "培根"), ("??", "漢堡"), ("??", "薯條"), ("??", "披薩"), ("??", "熱狗"), ("??", "三明治"), ("??", "玉米餅"), ("??", "卷餅"), ("??", "玉米粽"), ("??", "夾餡面包"), ("??", "炸豆丸子"), ("??", "蛋"), ("??", "煎蛋"), ("??", "平底鍋食物"), ("??", "燉菜"), ("??", "火鍋"), ("??", "碗勺"), ("??", "沙拉"), ("??", "爆米花"), ("??", "黃油"), ("??", "鹽"), ("??", "罐頭"), ("??", "便當(dāng)"), ("??", "米餅"), ("??", "飯團"), ("??", "米飯"), ("??", "咖喱飯"), ("??", "面條"), ("??", "意大利面"), ("??", "紅薯"), ("??", "關(guān)東煮"), ("??", "壽司"), ("??", "炸蝦"), ("??", "魚糕"), ("??", "月餅"), ("??", "團子"), ("??", "餃子"), ("??", "幸運餅干"), ("??", "外賣盒"), ("??", "螃蟹"), ("??", "龍蝦"), ("??", "蝦"), ("??", "烏賊"), ("??", "牡蠣"), ("??", "軟冰淇淋"), ("??", "刨冰"), ("??", "冰淇淋"), ("??", "甜甜圈"), ("??", "餅干"), ("??", "生日蛋糕"), ("??", "蛋糕"), ("??", "紙杯蛋糕"), ("??", "派"), ("??", "巧克力"), ("??", "糖果"), ("??", "棒棒糖"), ("??", "布丁"), ("??", "蜂蜜罐"), ("??", "奶瓶"), ("??", "牛奶"), ("?", "熱飲"), ("??", "茶壺"), ("??", "茶杯"), ("??", "清酒"), ("??", "香檳"), ("??", "葡萄酒"), ("??", "雞尾酒"), ("??", "熱帶飲料"), ("??", "啤酒"), ("??", "干杯"), ("??", "碰杯"), ("??", "平底杯"), ("??", "倒飲料"), ("??", "帶吸管杯"), ("??", "珍珠奶茶"), ("??", "紙盒飲料"), ("??", "馬黛茶"), ("??", "冰塊") ], "? 活動與運動": [ ("?", "足球"), ("?", "棒球"), ("??", "壘球"), ("??", "籃球"), ("??", "排球"), ("??", "橄欖球"), ("??", "英式橄欖球"), ("??", "網(wǎng)球"), ("??", "飛盤"), ("??", "保齡球"), ("??", "板球"), ("??", "曲棍球"), ("??", "冰球"), ("??", "長曲棍球"), ("??", "乒乓球"), ("??", "羽毛球"), ("??", "拳擊手套"), ("??", "道服"), ("??", "球門"), ("?", "高爾夫洞"), ("??", "風(fēng)箏"), ("??", "釣魚"), ("??", "潛水"), ("??", "跑步衫"), ("??", "滑雪"), ("??", "雪橇"), ("??", "冰壺"), ("??", "靶心"), ("??", "悠悠球"), ("??", "回旋鏢"), ("??", "臺球8"), ("??", "水晶球"), ("??", "魔杖"), ("??", "游戲手柄"), ("???", "操縱桿"), ("??", "老虎機"), ("??", "骰子"), ("??", "拼圖"), ("??", "黑桃"), ("??", "紅心"), ("??", "方塊"), ("??", "梅花"), ("??", "兵"), ("??", "小丑"), ("??", "紅中"), ("??", "花札"), ("??", "表演藝術(shù)"), ("???", "畫框"), ("??", "調(diào)色板") ], "?? 旅行與地點": [ ("??", "汽車"), ("??", "出租車"), ("??", "SUV"), ("??", "皮卡"), ("??", "公交車"), ("??", "無軌電車"), ("??", "小巴"), ("??", "救護車"), ("??", "消防車"), ("??", "警車"), ("??", "迎面而來的警車"), ("??", "迎面而來的出租車"), ("??", "迎面而來的汽車"), ("??", "卡車"), ("??", "鉸接式卡車"), ("??", "拖拉機"), ("???", "賽車"), ("???", "摩托車"), ("??", "踏板車"), ("??", "手動輪椅"), ("??", "電動輪椅"), ("??", "三輪車"), ("??", "自行車"), ("??", "滑板車"), ("??", "滑板"), ("??", "輪滑鞋"), ("??", "公交站"), ("???", "高速公路"), ("???", "鐵路"), ("?", "油泵"), ("??", "警車燈"), ("??", "水平紅綠燈"), ("??", "垂直紅綠燈"), ("??", "停止標(biāo)志"), ("??", "施工"), ("?", "錨"), ("?", "帆船"), ("??", "獨木舟"), ("??", "快艇"), ("???", "客輪"), ("??", "渡輪"), ("???", "摩托艇"), ("??", "船"), ("??", "飛機"), ("???", "小飛機"), ("??", "飛機起飛"), ("??", "飛機降落"), ("??", "降落傘"), ("??", "座位"), ("??", "直升機"), ("??", "高架鐵路"), ("??", "纜車"), ("??", "空中纜車"), ("???", "衛(wèi)星"), ("??", "火箭"), ("??", "飛碟"), ("??", "地球歐洲非洲"), ("??", "地球美洲"), ("??", "地球亞洲澳洲"), ("??", "子午線地球"), ("???", "世界地圖"), ("??", "日本地圖"), ("??", "指南針"), ("???", "雪山"), ("??", "山"), ("??", "火山"), ("??", "富士山"), ("???", "露營"), ("???", "海灘"), ("???", "沙漠"), ("???", "荒島"), ("???", "國家公園"), ("???", "體育場"), ("???", "古典建筑"), ("???", "建筑施工"), ("??", "磚塊"), ("??", "巖石"), ("??", "木頭"), ("??", "小屋"), ("???", "房屋"), ("???", "廢棄房屋"), ("??", "房子"), ("??", "別墅"), ("??", "辦公樓"), ("??", "郵局"), ("??", "歐洲郵局"), ("??", "醫(yī)院"), ("??", "銀行"), ("??", "酒店"), ("??", "愛情酒店"), ("??", "便利店"), ("??", "學(xué)校"), ("??", "百貨商店"), ("??", "工廠"), ("??", "日本城堡"), ("??", "歐洲城堡"), ("??", "婚禮"), ("??", "東京塔"), ("??", "自由女神像"), ("?", "教堂"), ("??", "清真寺"), ("??", "印度寺廟"), ("??", "猶太教堂"), ("??", "神社"), ("??", "克爾白"), ("?", "噴泉"), ("?", "帳篷"), ("??", "霧"), ("??", "夜晚"), ("???", "城市景觀"), ("??", "日出"), ("??", "日落"), ("??", "黃昏城市"), ("??", "日落城市"), ("??", "夜晚橋梁"), ("??", "溫泉"), ("??", "旋轉(zhuǎn)木馬"), ("??", "摩天輪"), ("??", "過山車"), ("??", "理發(fā)店"), ("??", "馬戲團"), ("??", "蒸汽火車"), ("??", "軌道車"), ("??", "高鐵"), ("??", "子彈頭列車"), ("??", "火車"), ("??", "地鐵"), ("??", "輕軌"), ("??", "車站"), ("??", "電車"), ("??", "單軌"), ("??", "山地鐵路"), ("??", "有軌電車") ], "?? 物品": [ ("??", "燈泡"), ("??", "手電筒"), ("??", "紅燈籠"), ("??", "迪亞燈"), ("??", "裝飾筆記本"), ("??", "合上的書"), ("??", "打開的書"), ("??", "綠書"), ("??", "藍書"), ("??", "橙書"), ("??", "一堆書"), ("??", "筆記本"), ("??", "賬本"), ("??", "卷頁"), ("??", "卷軸"), ("??", "頁面"), ("??", "報紙"), ("???", "卷起的報紙"), ("??", "書簽標(biāo)簽"), ("??", "書簽"), ("???", "標(biāo)簽"), ("??", "錢袋"), ("??", "硬幣"), ("??", "日元"), ("??", "美元"), ("??", "歐元"), ("??", "英鎊"), ("??", "帶翅膀的錢"), ("??", "信用卡"), ("??", "收據(jù)"), ("??", "信封"), ("??", "電子郵件"), ("??", "來信"), ("??", "帶箭頭的信封"), ("??", "發(fā)件箱"), ("??", "收件箱"), ("??", "包裹"), ("??", "關(guān)閉的郵箱"), ("??", "降旗郵箱"), ("??", "升旗郵箱"), ("??", "無旗郵箱"), ("??", "郵筒"), ("???", "投票箱"), ("??", "鉛筆"), ("??", "鋼筆尖"), ("???", "鋼筆"), ("???", "圓珠筆"), ("???", "畫筆"), ("???", "蠟筆"), ("??", "備忘錄"), ("??", "公文包"), ("??", "文件夾"), ("??", "打開的文件夾"), ("???", "卡片索引"), ("??", "日歷"), ("??", "撕頁日歷"), ("???", "螺旋記事本"), ("???", "螺旋日歷"), ("??", "卡片索引"), ("??", "上升圖表"), ("??", "下降圖表"), ("??", "條形圖"), ("??", "剪貼板"), ("??", "圖釘"), ("??", "圓圖釘"), ("??", "回形針"), ("???", "連接的回形針"), ("??", "直尺"), ("??", "三角尺"), ("??", "剪刀"), ("???", "卡片盒"), ("???", "文件柜"), ("???", "廢紙簍"), ("??", "鎖定"), ("??", "解鎖"), ("??", "墨水筆鎖定"), ("??", "鑰匙鎖定"), ("??", "鑰匙"), ("???", "舊鑰匙"), ("??", "錘子"), ("??", "斧頭"), ("??", "鎬"), ("??", "錘子和鎬"), ("???", "錘子和扳手"), ("???", "匕首"), ("??", "交叉劍"), ("??", "手槍"), ("??", "回旋鏢"), ("??", "弓箭"), ("???", "盾牌"), ("??", "木鋸"), ("??", "扳手"), ("??", "螺絲刀"), ("??", "螺母螺栓"), ("??", "齒輪"), ("???", "夾鉗"), ("??", "天平"), ("??", "盲杖"), ("??", "鏈接"), ("??", "鏈條"), ("??", "鉤子"), ("??", "工具箱"), ("??", "磁鐵"), ("??", "梯子"), ("??", "蒸餾器"), ("??", "試管"), ("??", "培養(yǎng)皿"), ("??", "DNA"), ("??", "顯微鏡"), ("??", "望遠鏡"), ("??", "衛(wèi)星天線"), ("??", "注射器"), ("??", "血滴"), ("??", "藥丸"), ("??", "創(chuàng)可貼"), ("??", "聽診器"), ("??", "門"), ("??", "電梯"), ("??", "鏡子"), ("??", "窗戶"), ("???", "床"), ("???", "沙發(fā)燈"), ("??", "椅子"), ("??", "馬桶"), ("??", "馬桶刷"), ("??", "淋浴"), ("??", "浴缸"), ("??", "捕鼠器"), ("??", "剃刀"), ("??", "乳液瓶"), ("??", "安全別針"), ("??", "掃帚"), ("??", "籃子"), ("??", "卷紙"), ("??", "桶"), ("??", "肥皂"), ("??", "牙刷"), ("??", "海綿"), ("??", "滅火器"), ("??", "購物車"), ("??", "香煙"), ("??", "棺材"), ("??", "墓碑"), ("??", "骨灰盒"), ("??", "標(biāo)語牌"), ("??", "ATM"), ("??", "垃圾桶"), ("??", "飲用水"), ("?", "輪椅"), ("??", "男廁所"), ("??", "女廁所"), ("??", "衛(wèi)生間"), ("??", "嬰兒"), ("??", "廁所"), ("??", "護照檢查"), ("??", "海關(guān)"), ("??", "行李領(lǐng)取"), ("??", "行李寄存"), ("??", "警告"), ("??", "兒童過路"), ("?", "禁止進入"), ("??", "禁止"), ("??", "禁止自行車"), ("??", "禁止吸煙"), ("??", "禁止亂扔"), ("??", "非飲用水"), ("??", "禁止行人"), ("??", "禁止手機"), ("??", "18禁"), ("??", "放射性"), ("??", "生物危害") ], "?? 符號": [ ("??", "紅心"), ("??", "橙心"), ("??", "黃心"), ("??", "綠心"), ("??", "藍心"), ("??", "紫心"), ("??", "棕心"), ("??", "黑心"), ("??", "白心"), ("??", "心碎"), ("??", "心嘆號"), ("??", "兩顆愛心"), ("??", "旋轉(zhuǎn)愛心"), ("??", "跳動愛心"), ("??", "成長愛心"), ("??", "閃爍愛心"), ("??", "愛心箭"), ("??", "愛心禮帶"), ("??", "心形裝飾"), ("??", "和平"), ("??", "拉丁十字"), ("??", "星月"), ("???", "唵"), ("??", "法輪"), ("?", "白羊"), ("?", "金牛"), ("?", "雙子"), ("?", "巨蟹"), ("?", "獅子"), ("?", "處女"), ("?", "天秤"), ("?", "天蝎"), ("?", "射手"), ("?", "摩羯"), ("?", "水瓶"), ("?", "雙魚"), ("?", "蛇夫"), ("??", "六角星"), ("??", "回收"), ("??", "原子"), ("??", "燭臺"), ("??", "陰陽"), ("??", "大衛(wèi)之星"), ("??", "初學(xué)者"), ("??", "ID按鈕"), ("??", "醫(yī)療"), ("??", "無限"), ("??", "VS按鈕"), ("??", "名牌"), ("??", "三叉戟"), ("?", "大紅圈"), ("?", "白勾"), ("??", "帶勾方框"), ("??", "粗勾"), ("?", "叉"), ("?", "帶叉圓圈"), ("?", "卷環(huán)"), ("?", "雙卷環(huán)"), ("??", "部分標(biāo)記"), ("??", "八星"), ("??", "八角星"), ("??", "火花"), ("??", "雙嘆號"), ("??", "嘆問號"), ("?", "紅問號"), ("?", "白問號"), ("?", "白嘆號"), ("?", "紅嘆號"), ("??", "波浪破折號"), ("??", "版權(quán)"), ("??", "注冊"), ("??", "商標(biāo)"), ("#??", "井號"), ("*??", "星號"), ("0??", "0"), ("1??", "1"), ("2??", "2"), ("3??", "3"), ("4??", "4"), ("5??", "5"), ("6??", "6"), ("7??", "7"), ("8??", "8"), ("9??", "9"), ("??", "10"), ("??", "大寫"), ("??", "小寫"), ("??", "數(shù)字"), ("??", "符號"), ("??", "字母"), ("???", "A按鈕"), ("??", "AB按鈕"), ("???", "B按鈕"), ("??", "CL按鈕"), ("??", "COOL按鈕"), ("??", "FREE按鈕"), ("??", "信息"), ("??", "M圓圈"), ("??", "NEW按鈕"), ("??", "NG按鈕"), ("???", "O按鈕"), ("??", "OK按鈕"), ("???", "P按鈕"), ("??", "SOS按鈕"), ("??", "UP按鈕"), ("??", '日文"這里"按鈕'), ("???", '日文"服務(wù)費"按鈕'), ("???", '日文"月"按鈕'), ("??", '日文"有"按鈕'), ("??", '日文"指"按鈕'), ("??", '日文"得"按鈕'), ("??", '日文"割"按鈕'), ("??", "日文無按鈕"), ("??", "日文禁按鈕"), ("??", "日文可按鈕"), ("??", "日文申按鈕"), ("??", "日文合按鈕"), ("??", "日文空按鈕"), ("祝?", "日文祝按鈕"), ("秘?", "日文秘按鈕"), ("??", "日文營按鈕"), ("??", "日文滿按鈕"), ("??", "紅圈"), ("??", "橙圈"), ("??", "黃圈"), ("??", "綠圈"), ("??", "藍圈"), ("??", "紫圈"), ("??", "棕圈"), ("?", "黑圈"), ("?", "白圈"), ("??", "紅方塊"), ("??", "橙方塊"), ("??", "黃方塊"), ("??", "綠方塊"), ("??", "藍方塊"), ("??", "紫方塊"), ("??", "棕方塊"), ("?", "黑方塊"), ("?", "白方塊"), ("??", "黑中方塊"), ("??", "白中方塊"), ("?", "黑中小方塊"), ("?", "白中小方塊"), ("??", "黑小方塊"), ("??", "白小方塊"), ("??", "大橙鉆石"), ("??", "大藍鉆石"), ("??", "小橙鉆石"), ("??", "小藍鉆石"), ("??", "紅三角"), ("??", "倒紅三角"), ("??", "鉆石點"), ("??", "單選按鈕"), ("??", "白方按鈕"), ("??", "黑方按鈕"), ("??", "方格旗"), ("??", "三角旗"), ("??", "交叉旗"), ("??", "黑旗"), ("???", "白旗"), ("??????", "彩虹旗"), ("??????", "跨性別旗"), ("?????", "海盜旗") ], "?? 音樂與聲音": [ ("??", "音符"), ("??", "多個音符"), ("??", "樂譜"), ("???", "錄音室麥克風(fēng)"), ("???", "音量滑塊"), ("???", "控制旋鈕"), ("??", "麥克風(fēng)"), ("??", "耳機"), ("??", "收音機"), ("??", "薩克斯"), ("??", "手風(fēng)琴"), ("??", "吉他"), ("??", "鋼琴"), ("??", "小號"), ("??", "小提琴"), ("??", "班卓琴"), ("??", "鼓"), ("??", "長鼓"), ("??", "喇叭"), ("??", "擴音器"), ("??", "郵號"), ("??", "鈴鐺"), ("??", "無鈴鐺"), ("??", "樂譜") ] } def populate_category_tabs(self): """填充分類標(biāo)簽頁""" 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("輸入關(guān)鍵詞搜索表情...") return found_count = 0 for 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 += 1 if 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): """復(fù)制表情到剪貼板""" emoji = item.data(Qt.UserRole) clipboard = QApplication.clipboard() clipboard.setText(emoji) # 顯示復(fù)制成功的提示 self.statusBar().showMessage(f"已復(fù)制: {emoji}", 2000) if __name__ == "__main__": app = QApplication(sys.argv) # 設(shè)置全局字體 font = QFont() font.setFamily("Microsoft YaHei") font.setPointSize(10) app.setFont(font) window = EmojiGenerator() window.show() sys.exit(app.exec_())
技術(shù)總結(jié)
創(chuàng)新點分析
性能優(yōu)化方案:
- 采用延遲加載技術(shù)
- 實現(xiàn)動態(tài)渲染機制
- 優(yōu)化搜索算法時間復(fù)雜度
交互設(shè)計亮點:
- 完善的工具提示系統(tǒng)
- 流暢的動畫效果
- 符合人體工學(xué)的操作流程
擴展方向
- 添加自定義emoji功能
- 實現(xiàn)收藏夾管理
- 增加使用頻率統(tǒng)計
- 開發(fā)插件系統(tǒng)
到此這篇關(guān)于基于Python+PyQt5打造一個跨平臺Emoji表情管理神器的文章就介紹到這了,更多相關(guān)Python Emoji表情管理平臺內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目
這篇文章主要介紹了pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05python基于phantomjs實現(xiàn)導(dǎo)入圖片
這篇文章主要介紹了python基于phantomjs實現(xiàn)導(dǎo)入圖片的相關(guān)資料,需要的朋友可以參考下2016-05-05利用Python第三方庫xlrd讀取Excel中數(shù)據(jù)實例代碼
python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫,下面這篇文章主要給大家介紹了關(guān)于利用Python第三方庫xlrd讀取Excel中數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07python中的實例方法、靜態(tài)方法、類方法、類變量和實例變量淺析
這篇文章主要介紹了python中的實例方法、靜態(tài)方法、類方法、類變量和實例變量淺析,需要的朋友可以參考下2014-04-04利用Python定位Span標(biāo)簽中文字的實戰(zhàn)指南
在網(wǎng)頁數(shù)據(jù)抓取和信息提取的過程中,經(jīng)常需要定位并獲取HTML中特定標(biāo)簽的內(nèi)容,其中,<span>標(biāo)簽是一個常見的內(nèi)聯(lián)元素,用于對文本進行分組或應(yīng)用樣式,本文將詳細介紹如何使用Python來定位并提取<span>標(biāo)簽中的文字,需要的朋友可以參考下2024-12-12python3的一個天坑問題及解決方法:報錯UnicodeDecodeError: ‘utf-8‘
在調(diào)試程序發(fā)現(xiàn)python3的一個天坑問題:報錯UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid,特此曝光,為眾位開發(fā)朋友提個醒2023-09-09