python利用PyQt5设计鼠标显示形状

 更新时间:2024年07月08日 09:36:14   作者:景天科技苑  
不知道大家有没有发现,我们在网页移动鼠标时,不同的网页会有不同的鼠标移动特效,通过移动鼠标,会形成类似蜘蛛网等等的特效,本文将用PyQt5实现这一特效,需要的可以参考一下

PyQt5鼠标相关操作

不知道大家有没有发现,我们在网页移动鼠标时,不同的网页会有不同的鼠标移动特效。通过移动鼠标,会形成类似蜘蛛网等等的特效,本文将用PyQt5实现这一特效,需要的可以参考一下

做GUI编程很常见的一个需求,要将按钮或者其他控件的光标移入、移出、按压时三种情况的控件样式都不一样,有些人把这三种情况叫做控件的三态

另一种情况需要更改光标的样式,如何更改呢,本文就详细阐述下

通常我们的鼠标在不同的状态下会显示不同的形状,来提示用户当前的状态,如忙碌,拖拽,禁止,改变窗体大小等:

1.设置鼠标形状

相关鼠标图示如下图所示

在这里插入图片描述

在这里插入图片描述

2.鼠标形状设置代码实战

设置鼠标形状方法setCursor(),根据传参不同设置不同形状
光标的设置只需要使用setCurror()即可,以下示例了如何设置光标的样式:

# 0. 导入需要的包和模块
from PyQt5.Qt import *  # 主要包含了我们常用的一些类, 汇总到了一块
import sys


# 1. 创建一个应用程序对象
app = QApplication(sys.argv)


# 2. 控件的操作
# 2.1 创建控件
window = QWidget()


# 2.2 设置控件
#设置窗口标题,默认标题是python,只有顶级控件才可以设置标题栏的标题
window.setWindowTitle("鼠标相关操作")
#设置窗口大小,注意,设置的空间尺寸大小,不包含上面的标题栏
window.resize(500, 500)

#默认鼠标形状是个斜箭头
window.setCursor(Qt.ArrowCursor)


# 2.3 展示控件
window.show()

# 3. 应用程序的执行, 进入到消息循环
sys.exit(app.exec_())

默认鼠标形状是个斜箭头
window.setCursor(Qt.ArrowCursor)
当鼠标移动到控件上市,展示我们设置的鼠标样式

在这里插入图片描述

其他鼠标形状展示

#小手形状
window.setCursor(Qt.OpenHandCursor)

在这里插入图片描述

其他类型的鼠标形状设置类似,有需求的小伙伴可以多试试

3.自定义鼠标形状

简单的定义一个光标需要以下三步:

  • 1.创建一个图形对象
  • 2.将图形对象传入鼠标对象
  • 3.使用setCursor()方法设置对象

自定义鼠标形状,需要借助QCoursor对象

通过我们自己的图片来设置鼠标形状

先看下图片

在这里插入图片描述

自定义鼠标形状代码实战与解读

from PyQt5.Qt import *
import sys

app = QApplication(sys.argv)
window = QWidget()
window.resize(500, 500)
window.setWindowTitle("自定义鼠标样式")

# 创建QPixmap对象,并设置显示的图片
pixmap = QPixmap("xxx.png")

# 设置对象宽和高按比例缩小,返回一个新对象。原对象并没有被缩放
#pixmap.scaled(targetWidth, targetHeight, Qt.KeepAspectRatio)
#targetWidth 和 targetHeight 是目标缩小后的宽度和高度。Qt.KeepAspectRatio 参数表示保持宽高比。
new_pixmap = pixmap.scaled(50, 50,Qt.KeepAspectRatio)

# 创建QCursor对象(鼠标对象),用作setCursor参数
# 设置该对象的作用点为图片的左上角(0,0),默认是图片中心点
# 默认QCursor(pixmap: QPixmap, hotX: int = -1, hotY: int = -1) 表示作用点在图片中心点
cursor = QCursor(new_pixmap, 0, 0)

# 设置window控件的鼠标样式为自定义的QCursor对象:cursor
window.setCursor(cursor)


button = QPushButton(window)
button.setText("按钮")
button.move(100,100)


window.show()
sys.exit(app.exec_())

运行,可见鼠标样式变成了我们设置的样子

并且左上角点击起作用

在这里插入图片描述

以上就是python利用PyQt5设计鼠标显示形状的详细内容,更多关于python PyQt5鼠标显示形状的资料请关注脚本之家其它相关文章!

相关文章

  • Pycharm无法正常安装第三方库的几条应对方法汇总

    Pycharm无法正常安装第三方库的几条应对方法汇总

    在使用pycharm学习python的时候,经常需要第三方库,没有第三方库程序就会报错,下面这篇文章主要给大家介绍了关于Pycharm无法正常安装第三方库的几条应对方法,需要的朋友可以参考下
    2023-04-04
  • django自带调试服务器的使用详解

    django自带调试服务器的使用详解

    今天小编就为大家分享一篇django自带调试服务器的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python实现为图片批量添加随机水印

    Python实现为图片批量添加随机水印

    这篇文章主要为大家详细介绍了如何使用Python实现为图片批量添加随机水印,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • OpenCV连通域数量统计学习示例

    OpenCV连通域数量统计学习示例

    这篇文章主要为大家介绍了OpenCV连通域数量统计示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • python如何使用replace做多字符替换

    python如何使用replace做多字符替换

    这篇文章主要介绍了python如何使用replace做多字符替换,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python版本的仿windows计划任务工具

    python版本的仿windows计划任务工具

    这篇文章主要介绍了python版本的仿windows计划任务工具,计划任务工具根据自己设定的具体时间,频率,命令等属性来规定所要执行的计划,当然功能不是很全大家可以补充
    2018-04-04
  • python中不同数据对象的空值校验总结

    python中不同数据对象的空值校验总结

    在Python中,我们可以使用不同的方式来校验数值的空值、字符串的空值以及对象的空值,本文为大家整理了一些常见的方法,希望对大家有所帮助
    2024-01-01
  • 在主机商的共享服务器上部署Django站点的方法

    在主机商的共享服务器上部署Django站点的方法

    这篇文章主要介绍了在主机商的共享服务器上部署Django站点的方法,Django是最具人气的Python框架,需要的朋友可以参考下
    2015-07-07
  • python 从list中随机取值的方法

    python 从list中随机取值的方法

    这篇文章主要介绍了python 从list中随机取值的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 入门tensorflow教程之TensorBoard可视化模型训练

    入门tensorflow教程之TensorBoard可视化模型训练

    在本篇文章中,主要介绍 了TensorBoard 的基础知识,并了解如何可视化训练模型中的一些基本信息,希望对大家的TensorBoard可视化模型训练有所帮助
    2021-08-08

最新评论