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标准库中,优先级队列是一种非常有用的数据结构,它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
