python随机显示四级词汇
python实现一个浮动窗口随机显示四级单词在桌面跑来跑去
实现一个浮动窗体随机显示四级单词在windows桌面置顶移动
tkinter
库来创建窗口和显示单词,以及random
库来随机选择单词。 使用after
方法来定时更新窗口的位置,实现单词窗口的慢慢移动效果
使用pandas读取Excel文件,并将每行的单词和释义对应关系存储在一个字典中
实现鼠标悬停时显示对应的解释,或者直接显示对应解释FloatingWordWindow
类中添加一个标签来显示解释,并在鼠标进入标签时更新解释内容
鼠标悬停的时候显示对应的解释,也就是对应键的值 不悬停的时候,不显示解释,返回显示随机单词 wraplength是自动换行
使用虚拟环境执行 E:\pycharm\anaconda\python.exe vocabulary.py
后台执行 E:\pycharm\anaconda\python.exe vocabulary.py & win不可用 在Linux或Mac系统下,你可以使用&
符号
在Windows系统下,你可以使用start命令来启动一个新的窗口并在其中运行脚本,然后关闭该窗口,脚本将在后台继续执行。例如:
start /B E:\pycharm\anaconda\python.exe vocabulary.py 也不行
powershell可以
cd "E:\pythonProject\other" Start-Process -FilePath "E:\pycharm\anaconda\python.exe" -ArgumentList "vocabulary.py" -WindowStyle Hidden
初始版本
import tkinter as tk import random import pandas as pd class FloatingWordWindow:def __init__(self, master):self.master = masterself.master.overrideredirect(True) # 隐藏标题栏和边框self.master.attributes('-topmost', True) # 置顶窗口self.master.attributes('-alpha', 0.7) # 设置透明度self.master.geometry('200x50+100+100') # 初始位置和大小self.word_label = tk.Label(self.master, font=('Arial', 20))self.word_label.pack(expand=True)self.move_window() def move_window(self):x = random.randint(0, self.master.winfo_screenwidth() - self.master.winfo_width())y = random.randint(0, self.master.winfo_screenheight() - self.master.winfo_height())self.master.geometry(f'+{x}+{y}')self.master.after(3000, self.move_window) # 每隔3秒更新一次位置 def update_word(self):words = ['apple', 'banana', 'orange', 'grape', 'watermelon'] # 替换为你的四级单词列表df=pd.read_excel("大学英语四级词汇完整版带音标-顺序版.xlsx")# 提取单词和释义列的内容word_column = df.columns[0] # 第一列是单词列meaning_column = df.columns[1] # 第二列是释义列# 创建一个字典,将单词和释义对应关系存储起来word_meaning_dict = dict(zip(df[word_column], df[meaning_column]))# 将字典的键转换为列表words_list = list(word_meaning_dict.keys())# 随机选择一个单词random_word = random.choice(words_list)self.word_label.config(text=random_word)# 绑定鼠标悬停事件self.word_label.bind("<Enter>",lambda event, word=random_word: self.show_meaning(event, word, word_meaning_dict))self.word_label.bind("<Leave>", lambda event: self.hide_meaning(random_word)) # 绑定鼠标移出事件self.master.after(3000, self.update_word) # 每隔3秒更新一次单词def show_meaning(self, event, word, word_meaning_dict):meaning = word_meaning_dict.get(word, "Meaning not found")self.word_label.config(text=f"{meaning}",font=('Arial', 10),wraplength=150) def hide_meaning(self,random_word):self.word_label.config(text=random_word,font=('Arial', 20),wraplength=150) # 清空文本 def main():root = tk.Tk()root.attributes('-toolwindow', True) # 隐藏任务栏图标root.attributes('-alpha', 0.7) # 设置透明度root.geometry('200x50+150+150') # 初始位置和大小app = FloatingWordWindow(root)app.update_word()root.mainloop() if __name__ == '__main__':main()
优化这个代码让excel读取只运行一次
import tkinter as tk import random import pandas as pd class FloatingWordWindow:def __init__(self, master):self.master = masterself.master.overrideredirect(True) # 隐藏标题栏和边框self.master.attributes('-topmost', True) # 置顶窗口self.master.attributes('-alpha', 0.7) # 设置透明度self.master.geometry('200x50+100+100') # 初始位置和大小self.word_label = tk.Label(self.master, font=('Arial', 20))self.word_label.pack(expand=True)self.load_word_meanings() # 加载单词和释义self.move_window() def load_word_meanings(self):df = pd.read_excel("大学英语四级词汇完整版带音标-顺序版.xlsx")self.word_meaning_dict = dict(zip(df[df.columns[0]], df[df.columns[1]])) # 单词和释义对应的字典 def move_window(self):x = random.randint(0, self.master.winfo_screenwidth() - self.master.winfo_width())y = random.randint(0, self.master.winfo_screenheight() - self.master.winfo_height())self.master.geometry(f'+{x}+{y}')self.master.after(3000, self.move_window) # 每隔3秒更新一次位置 def update_word(self):random_word = random.choice(list(self.word_meaning_dict.keys())) # 随机选择一个单词self.word_label.config(text=random_word)# 绑定鼠标悬停事件self.word_label.bind("<Enter>",lambda event, word=random_word: self.show_meaning(event, word))self.word_label.bind("<Leave>", lambda event: self.hide_meaning(random_word)) # 绑定鼠标移出事件self.master.after(3000, self.update_word) # 每隔3秒更新一次单词 def show_meaning(self, event, word):meaning = self.word_meaning_dict.get(word, "Meaning not found")self.word_label.config(text=f"{meaning}", font=('Arial', 10), wraplength=150) def hide_meaning(self, word):self.word_label.config(text=word, font=('Arial', 20), wraplength=150) # 清空文本 def main():root = tk.Tk()root.attributes('-toolwindow', True) # 隐藏任务栏图标root.attributes('-alpha', 0.7) # 设置透明度root.geometry('200x50+150+150') # 初始位置和大小app = FloatingWordWindow(root)app.update_word()root.mainloop() if __name__ == '__main__':main()
优化二 悬停显示
import tkinter as tk import random import pandas as pd class FloatingWordWindow:def __init__(self, master):self.master = masterself.master.overrideredirect(True) # 隐藏标题栏和边框self.master.attributes('-topmost', True) # 置顶窗口self.master.attributes('-alpha', 0.7) # 设置透明度self.master.geometry('200x50+100+100') # 初始位置和大小self.word_label = tk.Label(self.master, font=('Arial', 20))self.word_label.pack(expand=True)self.move_window() # 读取 Excel 数据self.load_excel_data() def move_window(self):x = random.randint(0, self.master.winfo_screenwidth() - self.master.winfo_width())y = random.randint(0, self.master.winfo_screenheight() - self.master.winfo_height())self.master.geometry(f'+{x}+{y}')self.master.after(3000, self.move_window) # 每隔3秒更新一次位置 def load_excel_data(self):self.df = pd.read_excel("大学英语四级词汇完整版带音标-顺序版.xlsx")self.word_column = self.df.columns[0] # 第一列是单词列self.meaning_column = self.df.columns[1] # 第二列是释义列# 创建一个字典,将单词和释义对应关系存储起来self.word_meaning_dict = dict(zip(self.df[self.word_column], self.df[self.meaning_column]))# 将字典的键转换为列表self.words_list = list(self.word_meaning_dict.keys()) def update_word(self):# 随机选择一个单词random_word = random.choice(self.words_list)self.word_label.config(text=random_word)# 绑定鼠标悬停事件self.word_label.bind("<Enter>",lambda event, word=random_word: self.show_meaning(event, word))self.word_label.bind("<Leave>", lambda event: self.hide_meaning(random_word)) # 绑定鼠标移出事件self.master.after(3000, self.update_word) # 每隔3秒更新一次单词 def show_meaning(self, event, word):meaning = self.word_meaning_dict.get(word, "Meaning not found")self.word_label.config(text=f"{meaning}", font=('Arial', 10), wraplength=150) def hide_meaning(self, random_word):self.word_label.config(text=random_word, font=('Arial', 20), wraplength=150) # 清空文本 def main():root = tk.Tk()root.attributes('-toolwindow', True) # 隐藏任务栏图标root.attributes('-alpha', 0.7) # 设置透明度root.geometry('200x50+150+150') # 初始位置和大小app = FloatingWordWindow(root)app.update_word()root.mainloop() if __name__ == '__main__':main()
优化三 直接显示
import tkinter as tk import random import pandas as pd class FloatingWordWindow:def __init__(self, master):self.master = masterself.master.overrideredirect(True) # 隐藏标题栏和边框self.master.attributes('-topmost', True) # 置顶窗口self.master.attributes('-alpha', 0.7) # 设置透明度self.word_label = tk.Label(self.master, font=('Arial', 18))self.word_label.pack(expand=True, padx=0, pady=0)self.load_word_meanings() # 加载单词和释义self.move_window() def load_word_meanings(self):df = pd.read_excel("大学英语四级词汇完整版带音标-顺序版.xlsx")self.word_meaning_dict = dict(zip(df[df.columns[0]], df[df.columns[1]])) # 单词和释义对应的字典 def move_window(self):x = random.randint(0, self.master.winfo_screenwidth() - self.master.winfo_width())y = random.randint(0, self.master.winfo_screenheight() - self.master.winfo_height())self.master.geometry(f'100x25+{x}+{y}') # 初始窗口大小为200x50self.master.after(3000, self.move_window) # 每隔3秒更新一次位置 def update_word(self):random_word = random.choice(list(self.word_meaning_dict.keys())) # 随机选择一个单词meaning = self.word_meaning_dict.get(random_word, "Meaning not found")# meaning = meaning.replace("\n", "--")str=random_word+"\n"+meaning;num_newlines = str.count("\n")self.word_label.config(text=random_word+"\n"+meaning,justify="left",padx=0, pady=0) self.word_label.config(height=(num_newlines+1)*25) # Set height based on number of newlines# 根据单词长度和字体大小调整窗口大小word_length = len(random_word+meaning)font_size = 18window_width = max(18, word_length * font_size)self.master.geometry(f'{window_width}x{(num_newlines+1)*25}') # 调整窗口宽度# # 绑定鼠标悬停事件# self.master.bind("<Enter>",# lambda event, word=random_word: self.show_meaning(event, word))# self.master.bind("<Leave>", lambda event: self.hide_meaning(random_word)) # 绑定鼠标移出事件# # 绑定左键单击事件self.master.bind("<Button-1>", lambda event: self.update_word())self.master.after(3000, self.update_word) # 每隔3秒更新一次单词 def show_meaning(self, event, word):meaning = self.word_meaning_dict.get(word, "Meaning not found")meaning = meaning.replace("\n", "--")self.word_label.config(text=f"{meaning}", font=('Arial', 10),padx=0, pady=0)word_length = len(meaning)font_size = 20window_width = max(20, word_length * font_size)self.master.geometry(f'{window_width}x30') # 调整窗口宽度 def hide_meaning(self, word):self.word_label.config(text=word, font=('Arial', 20), wraplength=150,padx=0, pady=0) # 清空文本 def main():root = tk.Tk()root.attributes('-toolwindow', True) # 隐藏任务栏图标root.attributes('-alpha', 0.7) # 设置透明度app = FloatingWordWindow(root)app.update_word()root.mainloop() if __name__ == '__main__':main()
优化四
随机不重复
import tkinter as tk
import random
import pandas as pd
class FloatingWordWindow:def __init__(self, master):self.master = masterself.master.overrideredirect(True) # 隐藏标题栏和边框self.master.attributes('-topmost', True) # 置顶窗口self.master.attributes('-alpha', 0.7) # 设置透明度self.word_label = tk.Label(self.master, font=('Arial', 20))self.word_label.pack(expand=True, padx=0, pady=0)self.load_word_meanings() # 加载单词和释义self.move_window()
def load_word_meanings(self):df = pd.read_excel("大学英语四级词汇完整版带音标-顺序版.xlsx")self.word_meaning_dict = dict(zip(df[df.columns[0]], df[df.columns[1]])) # 单词和释义对应的字典self.available_words = list(self.word_meaning_dict.keys()) # 可选择的单词列表
def move_window(self):x = random.randint(0, self.master.winfo_screenwidth() - self.master.winfo_width())y = random.randint(0, self.master.winfo_screenheight() - self.master.winfo_height())self.master.geometry(f'100x30+{x}+{y}') # 初始窗口大小为200x50self.master.after(3000, self.move_window) # 每隔3秒更新一次位置
def update_word(self):if not self.available_words: # 如果可选择的单词列表为空,则重新加载self.available_words = list(self.word_meaning_dict.keys())
random_word = random.choice(self.available_words) # 从可选择的单词列表中随机选择一个单词self.available_words.remove(random_word) # 从可选择的单词列表中删除已选择的单词self.word_label.config(text=random_word,padx=0, pady=0)# 根据单词长度和字体大小调整窗口大小word_length = len(random_word)font_size = 20window_width = max(20, word_length * font_size)self.master.geometry(f'{window_width}x30') # 调整窗口宽度# 绑定鼠标悬停事件self.master.bind("<Enter>",lambda event, word=random_word: self.show_meaning(event, word))self.master.bind("<Leave>", lambda event: self.hide_meaning(random_word)) # 绑定鼠标移出事件# # 绑定左键单击事件self.master.bind("<Button-1>", lambda event: self.update_word())self.master.after(3000, self.update_word) # 每隔3秒更新一次单词
def show_meaning(self, event, word):meaning = self.word_meaning_dict.get(word, "Meaning not found")meaning = meaning.replace("\n", "--")word_length = len(meaning)font_size = 11window_width = max(10, word_length * font_size)self.master.geometry(f'{window_width}x30') # 调整窗口宽度self.word_label.config(text=f"{meaning}", font=('Arial', 10), justify="left", wraplength=999, padx=0, pady=0)
def hide_meaning(self, word):self.word_label.config(text=word, font=('Arial', 20), wraplength=150,padx=0, pady=0) # 清空文本
def main():root = tk.Tk()root.attributes('-toolwindow', True) # 隐藏任务栏图标root.attributes('-alpha', 0.7) # 设置透明度app = FloatingWordWindow(root)app.update_word()root.mainloop()
if __name__ == '__main__':main()
相关文章:

python随机显示四级词汇
python实现一个浮动窗口随机显示四级单词在桌面跑来跑去 实现一个浮动窗体随机显示四级单词在windows桌面置顶移动 tkinter库来创建窗口和显示单词,以及random库来随机选择单词。 使用after方法来定时更新窗口的位置,实现单词窗口的慢慢移动效果 使用…...

vuerouter声明式导航
声明式导航-跳转传参数 1.查询参数传参 语法:to /path?参数名值 2.对应页面组件接受传来的值 $router.query.参数名 2.动态路由传参 1.配置动态路由 2.配置导航连接 to/path/参数值 3.对应页面组件接收传递过来的值 #route.params.参数名 多个参数传递&…...

视频断点上传
什么是断点续传 通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成…...

清华团队开发首个AI医院小镇模拟系统;阿里云发布通义千问 2.5:超越GPT-4能力;Mistral AI估值飙升至60亿美元
🦉 AI新闻 🚀 清华团队开发首个AI医院小镇模拟系统 摘要:来自清华的研究团队最近开发出了一种创新的模拟系统,名为"Agent Hospital",该系统能够完全模拟医患看病的全流程,其中包括分诊、挂号、…...
React Suspense与Concurrent Mode:探索异步渲染的新范式
React的Suspense和Concurrent Mode是两个强大的特性,它们共同改变了React应用处理异步数据加载和UI渲染的方式。下面我将通过一个简化的代码示例来展示如何使用这两个特性。 Concurrent Mode 和 Suspense 的基本用法 首先,确保你使用的是支持这些特性的…...
算法训练营day37
动态规划 1.斐波那契数 1.使用数组存储子问题结果 class Solution {public int fib(int N) {if (N 0) return 0;int[] dp new int[N 1];// base casedp[0] 0; dp[1] 1;// 状态转移for (int i 2; i < N; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[N];} }2.使用变…...

基础ArkTS组件:帧动画,内置动画组件,跑马灯组件(HarmonyOS学习第三课【3.6】)
帧动画 帧动画也叫序列帧动画,其原理就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。ArkUI开发框架提供了 ImageAnimator 组件实现帧动画能力,本节笔者介绍一下 ImageAnimator 组件的简单使用。 官方文献 说明 该组件从A…...
vant NavBar 导航栏详解
vant 是一个基于 Vue 的移动端 UI 组件库,而 NavBar 是其中的一个导航栏组件。下面是对 vant 的 NavBar 导航栏组件的详细解释: 1. 引入 NavBar 首先,你需要在你的 Vue 组件中引入 NavBar 组件: import { NavBar } from vant; …...

Python自动化办公实战案例:文件整理与邮件发送
目录 一、引言 二、案例背景 三、实战案例 (一)文件自动整理 (二)邮件自动发送 四、结语 一、引言 随着办公自动化的兴起,Python作为一门强大的编程语言,逐渐被应用于日常办公中。从文件整理到邮件…...

2024中国(重庆)无人机展览会8月在重庆举办
2024中国(重庆)无人机展览会8月在重庆举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 报名:【交易会I 59交易会2351交易会9466】 展会背景: 为更好的培养航空航天产业和无人…...

自动驾驶技术与传感器数据处理
目录 自动驾驶总体架构 感知系统 决策系统 定位系统 计算平台 仿真平台 自动驾驶公开数据集 激光点云 点云表征方式 1) 原始点云 2) 三维点云体素化 3)深度图 4)鸟瞰图 点云检测障碍物的步骤 PCL点云库 车载毫米波雷达 车载相机 设备标定 自动驾驶…...

高效测评系统方案助力沃尔玛、亚马逊卖家提升产品销量
无论在哪个电商平台,测评确实是最有效的推广方式。测之前一定要选好产品,因为对于大部分卖家而言,不可能你店铺里所有的都是爆款,所以选择的是需要有潜力成为爆款的产品。测评是指通过搭建安全的环境模拟真实的买家购物行为&#…...

B/S模式的web通信(高并发服务器)
这里写目录标题 目标实现的目标 服务器代码(采用epoll实现服务器)整体框架main函数init_listen_fd函数(负责对lfd初始化的那一系列操作)epoll_run函数do_accept函数do_read函数内容补充:http中的getline函数 详解do_re…...
C语言每日一题—约瑟夫问题
13个人围成一圈,从第1个人开始顺序报号1、2、3,凡报到3的人退出圈子。找出最后留在圈子里的人原来的序号。要求用结构体编程实现。***输出提示:"\n出圈成员及顺序:" ***输出格式:"%3d" ***输出提示…...

语言:C#
一、VSCode生成exe 二、...
[力扣题解]45. 跳跃游戏 II
题目:45. 跳跃游戏 II 思路 贪心法; 只需记录2个变量,当前点能达到的最远距离,和上一步能到达的最远距离; (真有意思,代码随想录给出的是curDistance,nextDistance2个,…...
pywinauto操作windows应用(未完成)
pywinauto 脚本制作 一 、获取窗口句柄 首先获取句柄,其次扫描组件,然后对按钮和文本进行操作 安装依赖 pip install pywin32 -i https://pypi.doubanio.com/simple扫描全部的句柄 import win32gui# GetDesktopWindow 获得代表整个屏幕的一个窗口&a…...

(超详细讲解)实现将idea的java程序打包成exe (新版,可以在没有java的电脑下运行,即可以发给好朋友一起玩)
目录 实现打包到exe大概步骤 工具准备 1.将java程序文件打包成jar文件 2.准备好jre文件 3.使用exe4j软件打包好 4.最终打包 实现打包到exe大概步骤 1.打包需要满足的条件:将java文件转成jar文件的工具exe4j、 以及需要满足jdk1.8以上(因安装exe4…...

学习软考----数据库系统工程师29
数据操作 SELECT基本结构 简单查询 连接查询 子查询 聚集函数 分组查询 字符串操作 集合操作 外连接 INSERT INTO语句 DELETE语句 UPDATE语句...

STL中的优先级队列
目录 1.引言 2.简介 3.基本操作 4.实现原理 5.自定义优先级比较 6.相关题目 7.能特点 8.总结 1.引言 在C标准库中,优先级队列是一种非常有用的数据结构,它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...

PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...

性能优化中,多面体模型基本原理
1)多面体编译技术是一种基于多面体模型的程序分析和优化技术,它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象,通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中࿰…...