当前位置: 首页 > article >正文

项目推荐:指针切换器

小编的inscode部署项目:割绳子游戏。

更多精彩内容见InsCode - 让你的灵感立刻落地~

介绍一下项目。

引言

在现代用户界面设计中,鼠标指针的样式和行为对用户体验有着重要的影响。传统的鼠标指针样式(如箭头、手形、等待图标等)已经广泛应用于各种应用程序中,但随着技术的发展和用户需求的多样化,越来越多的开发者开始探索和实现自定义鼠标指针,以提升应用的独特性和功能性。本文将详细介绍一个使用 Streamlit 创建的“超级增强版多功能鼠标指针更换器”项目,该项目不仅涵盖了常见的鼠标指针样式,还引入了多种自定义和非标准的指针类型,旨在为用户提供丰富的交互体验。

项目概述

项目背景

Streamlit 是一个用于快速创建数据应用的 Python 库,它允许开发者使用简单的 Python 代码创建复杂的 Web 应用。Streamlit 的优势在于其简洁的语法和强大的功能,使得开发者可以专注于业务逻辑,而无需关心底层的 Web 开发细节。在这个项目中,我们将利用 Streamlit 的这些特性,创建一个功能丰富、易于使用的鼠标指针更换器。

项目目标
  1. 提供多种鼠标指针样式:包括常见的标准指针类型和自定义的非标准指针类型。
  2. 用户友好的界面:通过按钮和文字提示,让用户轻松切换不同的鼠标指针样式。
  3. 扩展性和灵活性:支持添加更多的指针类型,以便未来扩展。
  4. 教育意义:通过实际项目,展示如何使用 Streamlit 和 CSS 实现复杂的 UI 功能。

代码详解

导入库
 

python

import streamlit as st

首先,我们导入 Streamlit 库。Streamlit 是一个强大的工具,用于创建数据应用和 Web 界面。通过导入 st,我们可以使用 Streamlit 提供的各种功能。

定义更改鼠标指针的函数
 

python

def change_cursor(cursor_type): st.markdown(f'<style>body {{ cursor: {cursor_type}; }}</style>', unsafe_allow_html=True)

change_cursor 函数用于更改页面的鼠标指针样式。它接受一个参数 cursor_type,表示要设置的鼠标指针类型。通过 st.markdown 函数,我们可以插入包含 CSS 样式的 HTML 代码,从而动态地更改鼠标指针。unsafe_allow_html=True 参数允许插入未转义的 HTML 内容,这对于设置 CSS 样式是必需的。

定义恢复默认指针的函数
 

python

def restore_default_cursor(): st.markdown('<style>body { cursor: auto; }</style>', unsafe_allow_html=True)

restore_default_cursor 函数用于恢复页面的默认鼠标指针样式。它通过设置 cursor: auto; 来恢复默认的箭头指针。

创建 Streamlit 应用
 

python

st.title("超级增强版多功能鼠标指针更换器")

使用 st.title 设置应用的标题,让用户一目了然地知道这是一个鼠标指针更换器。

新增五种指针类型
 

python

if st.button("更改为禁止操作"): change_cursor("not-allowed") st.write("鼠标指针已更改为禁止操作状态。") if st.button("垂直文本编辑"): change_cursor("vertical-text") st.write("鼠标指针已更改为垂直文本编辑模式。") if st.button("细胞选择(用于电子表格)"): change_cursor("cell") st.write("模拟为电子表格中的单元格选择状态。") if st.button("喷枪模式"): change_cursor("spraypaint") st.write("模拟喷枪模式,常用于绘图应用。") if st.button("游戏控制器(示例)"): # 非标准类型 change_cursor("url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PGNpcmNsZSBjeD0iMTAiIGN5PSIxMCIgcj0iNSIvPjxnIGlkPSJDaGFuZ2VNYXNrIj48cGF0aCBkPSJNMCAxMUgyNEwxOCAxMEgyNEExIDEyIDEwIDE4IDExIDE4WiIgc3Ryb2tlPSIjMDAzMDMwIiBzdHJva2Utd2lkdGg9IjEuMCIvPjwvZz48L3N2Zz4=)") st.write("模拟游戏控制器指针,非标准类型仅供参考。")

这里我们新增了五种鼠标指针类型,每个类型都对应一个按钮。当用户点击按钮时,调用 change_cursor 函数更改鼠标指针,并使用 st.write 显示一条消息,告知用户当前的鼠标指针状态。

  • 禁止操作:使用 not-allowed 指针,表示当前操作被禁止。
  • 垂直文本编辑:使用 vertical-text 指针,表示垂直文本编辑模式。
  • 细胞选择:使用 cell 指针,模拟电子表格中的单元格选择状态。
  • 喷枪模式:使用 spraypaint 指针,常用于绘图应用。
  • 游戏控制器:使用自定义的 SVG 图像作为指针,模拟游戏控制器。这里使用了 Base64 编码的 SVG 数据。
保留原有和新增功能
 

python

if st.button("更改为忙碌(wait)"): change_cursor("wait") st.write("鼠标指针已更改为忙碌状态。") if st.button("更改为十字光标(crosshair)"): change_cursor("crosshair") st.write("鼠标指针已更改为十字光标。") if st.button("更改为帮助(help)"): change_cursor("help") st.write("鼠标指针已更改为帮助标志。") if st.button("更改为移动(move)"): change_cursor("move") st.write("鼠标指针已更改为移动图标。") if st.button("更改为链接(link)"): change_cursor("link") st.write("鼠标指针已更改为链接样式。") if st.button("更改为抓手(grab)"): change_cursor("grab") st.write("鼠标指针已更改为抓手状态,适合拖拽操作。")

这里保留了一些常见的鼠标指针类型,并为每个类型添加了一个按钮。当用户点击按钮时,调用 change_cursor 函数更改鼠标指针,并使用 st.write 显示一条消息,告知用户当前的鼠标指针状态。

  • 忙碌:使用 wait 指针,表示系统正在忙于处理某个任务。
  • 十字光标:使用 crosshair 指针,常用于绘图和图像编辑。
  • 帮助:使用 help 指针,表示用户可以获取帮助信息。
  • 移动:使用 move 指针,表示用户可以拖动对象。
  • 链接:使用 link 指针,表示用户可以点击链接。
  • 抓手:使用 grab 指针,表示用户可以抓取和拖动对象。
自定义或不标准的鼠标指针类型展示
 

python

if st.button("模拟进行中(progress,非标准)"): change_cursor("progress") # 虽然非标准,但用于演示 st.write("模拟鼠标指针更改为进行中的状态。")

这里添加了一个非标准的鼠标指针类型 progress,虽然这不是一个标准的 CSS 指针类型,但可以用于演示目的。当用户点击按钮时,调用 change_cursor 函数更改鼠标指针,并使用 st.write 显示一条消息,告知用户当前的鼠标指针状态。

恢复默认鼠标指针
 

python

if st.button("恢复默认鼠标指针"): restore_default_cursor() st.write("鼠标指针已恢复为默认状态。")

最后,添加一个按钮用于恢复默认的鼠标指针。当用户点击按钮时,调用 restore_default_cursor 函数恢复默认指针,并使用 st.write 显示一条消息,告知用户当前的鼠标指针状态。

项目运行

启动应用

在终端中运行以下命令来启动 Streamlit 应用:

 

sh

streamlit run mouse_pointer_changer.py

打开浏览器并访问显示的 URL(通常是 http://localhost:8501),你应该能看到一个简单的 Streamlit 应用,点击按钮可以更改和恢复鼠标指针。

项目扩展

添加更多指针类型

你可以根据需要添加更多的鼠标指针类型。只需在代码中添加新的按钮,并调用 change_cursor 函数即可。例如:

 

python

if st.button("更改为复制(copy)"): change_cursor("copy") st.write("鼠标指针已更改为复制状态。")

支持自定义指针文件

如果你有自定义的指针文件(如 .cur 或 .png),可以将其上传到项目目录中,并在 change_cursor 函数中使用 url 属性引用这些文件。例如:

 

python

if st.button("更改为自定义指针"): change_cursor("url(path/to/your/custom_cursor.cur), auto") st.write("鼠标指针已更改为自定义指针。")

结论

通过这个项目,我们展示了如何使用 Streamlit 和 CSS 创建一个功能丰富的鼠标指针更换器。这个项目不仅涵盖了常见的标准指针类型,还引入了多种自定义和非标准的指针类型,为用户提供丰富的交互体验。通过简单的 Python 代码,我们可以轻松实现复杂的 UI 功能,这正是 Streamlit 的强大之处。希望这个项目能为你的开发工作带来灵感,帮助你创建更多有趣和实用的应用。

运行截图。。。


http://www.kler.cn/a/379215.html

相关文章:

  • WordPress之generatepress主题安装
  • HTML 框架
  • 算法学习027 c++蛇形三角形填充 二维数组常规应用 中小学算法思维学习 比赛算法题解 信奥算法解析
  • Python小游戏19——滑雪小游戏
  • ArcGIS005:ArcMap常用操作101-150例动图演示
  • copyq禁止访问网络(ubuntu cgroup)
  • 骨传导耳机品牌排行榜前十名推荐!五款王牌爆款机型推荐!
  • warmup
  • (自用复习题)常微分方程08
  • 手游和应用出海资讯:可灵AI独立APP即将上架;Rollic在英国推出芭比合并解谜手游
  • UE Mutiplayer(1):网络概述
  • SpringBoot音乐天地:构建Web音乐网站
  • sublime python出现中文乱码怎么办
  • 文件上传和文件包含
  • 国家电网某话务中心IT基础监控应用案例
  • Vue3.js - 计算属性监视属性
  • Linux运行Java程序,并按天输出日志
  • 数论——约数
  • 【Android】使用productFlavors构建多个变体
  • 鸿蒙进阶篇-Swiper组件的使用
  • docker镜像仓库实战
  • 2024年最新TikTok养号攻略来了!再也不用为流量头疼了!
  • 著名的 Tangible Software Solutions 代码转换软件推荐的 VB6 代码转换器 gmStudio
  • 【操作系统】基于环形队列的生产消费模型
  • 【含开题报告+文档+源码】基于Web的房地产销售网站的设计与实现
  • 嵌入式操作系统FreeRTOS