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标准库中,优先级队列是一种非常有用的数据结构,它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…...
别再只用电容了!从π型RC到电子滤波,手把手教你选对硬件滤波方案(附电路图)
硬件滤波方案实战指南:从基础RC到电子滤波的工程决策 在嵌入式系统和电源设计中,噪声抑制是每个工程师必须面对的挑战。想象一下,你精心设计的传感器电路因为电源噪声导致数据跳变,或者音频放大器传出令人不快的嗡嗡声——这些问题…...
腾讯云轻量服务器+宝塔面板:新手零代码搭建个人网站的保姆级避坑指南
腾讯云轻量服务器宝塔面板:新手零代码搭建个人网站的保姆级避坑指南 你是否曾经想过拥有一个属于自己的网站,却因为不懂代码和服务器运维而望而却步?现在,即使你没有任何技术背景,也能轻松实现这个梦想。本文将带你一步…...
基于MATLAB的用于分析弧齿锥齿轮啮合轨迹的程序已调通,可直接运行并输出齿轮啮合轨迹及传递误差
158.基于matlab的用于分析弧齿锥齿轮啮合轨迹的输出齿轮啮合轨迹及传递误差程序已调通,可直接运行 1. 程序概述 本程序包实现了一套完整的弧齿锥齿轮齿面接触分析(TCA) 系统,主要用于分析大轮凸面与小轮凹面的啮合特性。程序由刘…...
ANR-WatchDog源码深度剖析:从线程监控到错误抛出的完整实现
ANR-WatchDog源码深度剖析:从线程监控到错误抛出的完整实现 【免费下载链接】ANR-WatchDog A simple watchdog that detects Android ANR (Application Not Responding) error and throws a meaningful exception 项目地址: https://gitcode.com/gh_mirrors/an/AN…...
Android定时开关机的5种实现方式对比:哪种最适合你的设备?
Android定时开关机技术全景解析:从系统API到硬件层控制的深度实践 在智能设备管理领域,定时开关机功能一直是工业控制、物联网终端和定制化Android设备的核心需求之一。想象一下,你正在部署一批智能售货机,需要在营业时间自动唤醒…...
告别电量焦虑:能源之星X如何让Windows笔记本续航轻松翻倍
告别电量焦虑:能源之星X如何让Windows笔记本续航轻松翻倍 【免费下载链接】EnergyStarX 🔋 Improve your Windows 11 devices battery life. A WinUI 3 GUI for https://github.com/imbushuo/EnergyStar. 项目地址: https://gitcode.com/gh_mirrors/en…...
LangChain框架使用说明
LangChain框架的安装与环境配置 LangChain的安装可通过Python包管理器快速完成。核心库包括langchain、langchain-community和langchain-core,建议使用以下命令进行完整安装: pip install langchain langchain-community langchain-core openai环境配…...
2026年选鱼鹰,哪个厂家更靠谱?一文为你揭晓好用之选!
在水产养殖领域,鱼鹰是一种备受关注的养殖品种,其市场需求也在不断增长。选择一家靠谱的鱼鹰供应厂家至关重要,它不仅关系到鱼鹰的品质和健康,还会影响到养殖的效益和未来发展。在众多的厂家中,济宁百鸿养殖有限公司脱…...
2KW移相全桥整机Matlab Simulink仿真模型电源 2KW移相全桥整机Matlab Simulink仿真模型电源学习资料,报告mathcad参数设计,
2KW移相全桥整机Matlab Simulink仿真模型电源 2KW移相全桥整机Matlab Simulink仿真模型电源学习资料,报告mathcad参数设计,模型搭建过程参考资料,仿真模型等,很全面的移相全桥学习资料,电子资料针对你提到的 2kW 移相全…...
资源提取高效解析与跨设备管理:猫抓浏览器扩展的技术实践
资源提取高效解析与跨设备管理:猫抓浏览器扩展的技术实践 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字化内容爆炸的今天&…...
