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

江苏h5响应式网站建设设计seo好学吗入门怎么学

江苏h5响应式网站建设设计,seo好学吗入门怎么学,算卦网站哪里可以做,网站空间可以自己做吗文章目录 鼠标形状设置常用鼠标形状设置自定义鼠标形状 重置形状获取鼠标鼠标跟踪鼠标跟踪案例 鼠标形状设置 常用鼠标形状设置 在PyQt中,QWidget类提供了设置鼠标形状的功能。可以使用setCursor()方法来更改QWidget及其子类的鼠标形状。该方法接受一个Qt.CursorS…

文章目录

  • 鼠标形状设置
    • 常用鼠标形状设置
    • 自定义鼠标形状
  • 重置形状
  • 获取鼠标
  • 鼠标跟踪
  • 鼠标跟踪案例

鼠标形状设置

常用鼠标形状设置

在PyQt中,QWidget类提供了设置鼠标形状的功能。可以使用setCursor()方法来更改QWidget及其子类的鼠标形状。该方法接受一个Qt.CursorShape参数,该参数定义了不同的鼠标形状选项。

以下是一些常用的鼠标形状选项及其对应的Qt.CursorShape常量:

  • Qt.ArrowCursor:标准箭头指针。
    在这里插入图片描述

  • Qt.UpArrowCursor:向上箭头指针。
    在这里插入图片描述

  • Qt.CrossCursor:十字形指针。
    在这里插入图片描述

  • Qt.IBeamCursor:I形指针(用于文本输入)。
    在这里插入图片描述

  • Qt.WaitCursor:无操作期间的等待指针。
    在这里插入图片描述

  • Qt.BusyCursor:忙碌指针。
    在这里插入图片描述

  • Qt.ForbiddenCursor:禁止指针。
    在这里插入图片描述

  • Qt.PointingHandCursor:手形指针,用于指示可点击的对象。
    在这里插入图片描述

  • Qt.WhatsThisCursor:上下问号指针,用于提供上下文帮助。
    在这里插入图片描述

  • Qt.SizeVerCursor:垂直调整大小指针。
    在这里插入图片描述

  • Qt.SizeHorCursor:水平调整大小指针。
    在这里插入图片描述

  • Qt.SizeBDiagCursor:对角线调整大小指针(从左上到右下)。
    在这里插入图片描述

  • Qt.SizeAllCursor:移动调整大小指针。
    在这里插入图片描述

  • Qt.SplitVCursor:垂直分割指针。
    在这里插入图片描述

  • Qt.SplitHCursor:水平分割指针。
    在这里插入图片描述

  • Qt.OpenHandCursor:打开手指针。
    在这里插入图片描述

  • Qt.ClosedHandCursor:闭合手指针。
    在这里插入图片描述

  • Qt.BlankCursor:隐藏鼠标指针(下面是一个空白的图片)。
    在这里插入图片描述

下面为常用鼠标设置的代码示例:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
import sysapp = QApplication(sys.argv)window = QWidget()
window.resize(200, 200)window.setCursor(Qt.BusyCursor)     # 设置鼠标形状为加载状态
window.show()sys.exit(app.exec_())

运行结果:

在这里插入图片描述

自定义鼠标形状

在PyQt中,可以使用QCursor对象来将一张图片设置为鼠标指针的形状。下面是具体步骤:

  1. 导入所需的类:from PyQt5.QtGui import QPixmap, QCursor
  2. 加载图片:使用QPixmap类的fromImage()方法从文件或QImage对象中加载图片。例如,cursor_image = QPixmap('path/to/image.png') 将会创建一个QPixmap对象,其中包含了指定路径下的图片。
  3. 调整图片大小:如果需要,可以使用cursor_image.scaled()方法调整图片的大小。例如,scaled_image = cursor_image.scaled(32, 32) 会将图片调整为32x32像素大小的图片。
  4. 创建自定义鼠标形状:使用QCursor类的QCursor(cursor_image)构造函数,传入调整大小后的图片,创建一个自定义的QCursor对象。
  5. 设置QWidget的鼠标形状:使用QWidget的setCursor()方法将自定义的QCursor对象设置为QWidget的鼠标形状。

以下是一个示例代码,展示了如何将一张图片设置为QWidget的鼠标形状:
在这里插入图片描述

from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPixmap, QCursor
import sysapp = QApplication(sys.argv)window = QWidget()
window.setWindowTitle("自定义鼠标操作")
window.resize(300, 300)pixmap = QPixmap('mouse.png')   # 创建一个图片对象
new_pixmap = pixmap.scaled(50, 50)  # 将缩放图片的对象返回,并用new_pixmap接收其返回值
cursor = QCursor(new_pixmap)    # 鼠标对象(图片对象)window.setCursor(cursor)window.show()
sys.exit(app.exec_())

运行结果:

在这里插入图片描述
此时将鼠标移动到控件窗口内就会出现自定义的图片。

但是,当我们要进行点击的操作时,发现当鼠标的中间位置到达目标位置时才能执行点击操作,这是因为在QCursor函数内部,它将鼠标图片的热点设置在中间位置。

在这里插入图片描述
因此可以通过修改图片的热点位置,就可实现鼠标点击生效的位置。如以下代码,QCursor(new_pixmap, 0, 0),其中的0,0即为热点位置,若想将热点位置改为鼠标右下角,可设置为50,50。因为前边使用pixmap.scaled(50, 50)已将图片缩放到50,50的尺寸大小

pixmap = QPixmap('mouse.png')   # 创建一个图片对象
new_pixmap = pixmap.scaled(50, 50)  # 将缩放图片的对象返回,并用new_pixmap接收其返回值
cursor = QCursor(new_pixmap, 0, 0)    # 鼠标对象(图片对象)

重置形状

在PyQt中,unsetCursor()是一个QWidget的方法,用于将QWidget的鼠标指针形状重置为默认形状。

以以上代码为例:

pixmap = QPixmap('mouse.png')   # 创建一个图片对象
new_pixmap = pixmap.scaled(50, 50)  # 将缩放图片的对象返回,并用new_pixmap接收其返回值
cursor = QCursor(new_pixmap, 0, 0)    # 鼠标对象(图片对象)window.setCursor(cursor)
window.unsetCursor()    # 重置鼠标形状

运行结果:

在这里插入图片描述

获取鼠标

在PyQt中,你可以使用QWidgetpos()方法来获取鼠标的当前位置,使用QWidgetsetPos()方法来设置鼠标的位置。

下面分别来介绍这两个方法:

  1. 获取鼠标位置:pos()

    • pos()方法返回一个QPoint对象,表示当前鼠标的位置。(鼠标相对于屏幕的位置)QPoint对象有两个属性:x()表示横坐标,y()表示纵坐标。你可以使用这两个属性来获取具体的坐标值。
  2. 设置鼠标位置:setPos()

    • setPos(x, y)方法允许你将鼠标的位置设置为指定的横纵坐标。你可以通过给定的xy参数来指定新的坐标。
    • xy参数可以是一个整数或浮点数类型的值,表示相应的坐标位置。

在以上代码的基础上加上以下代码:

current_cursor = window.cursor()
print(current_cursor.pos())   # 打印当前鼠标的位置
current_cursor.setPos(0, 0)     # 移动鼠标到屏幕左上角
print(current_cursor.pos())   # 打印当前鼠标的位置

运行结果:

在这里插入图片描述

鼠标跟踪

在PyQt中,可以使用setMouseTracking()hasMouseTracking()这两个API函数来设置和查询鼠标跟踪功能。

  1. setMouseTracking()函数

    • setMouseTracking(enable)允许你开启或关闭鼠标跟踪功能。
    • enable参数是一个布尔值,如果为True,则开启鼠标跟踪功能;如果为False,则关闭鼠标跟踪功能。
    • 不跟踪:鼠标移动时,必须处于按下状态,才会触发mouseMoveEvent事件
    • 跟踪:鼠标移动时,不处于按下状态,也会触发mouseMoveEvent事件。
  2. hasMouseTracking()函数

    • hasMouseTracking()函数会返回一个布尔值,表示当前QWidget是否开启了鼠标跟踪功能。

以下是一个使用鼠标跟踪功能的示例代码:

from PyQt5.QtWidgets import *
import sysclass MyWindow(QWidget):def __init__(self, parent=None):super().__init__(parent)def mouseMoveEvent(self, me):print("鼠标移动了")if __name__ == '__main__':app = QApplication(sys.argv)window = MyWindow()window.resize(300, 300)window.show()sys.exit(app.exec_())

运行结果:
当鼠标放在控件内,未按下鼠标左键时,鼠标未进行跟踪,当长按鼠标左键并移动时,才会触发鼠标跟踪事件。

在这里插入图片描述
若在主程序中就设置鼠标跟踪,观察其结果:

window.setMouseTracking(True)	# 设置鼠标跟踪
print(window.hasMouseTracking())	# 打印鼠标跟踪状态

运行结果:
当鼠标移动到控件内,未按下鼠标左键,只移动,会直接触发鼠标跟踪事件,这是因为在程序中设置了鼠标跟踪。

在这里插入图片描述
在以上代码的基础上使用globalPos()方法打印鼠标的全局位置(相对于屏幕),使用localPos()方法打印局部位置(相对于控件)

def mouseMoveEvent(self, me):print('全局位置:', me.globalPos())print('局部位置:', me.localPos())

运行结果:

在这里插入图片描述

鼠标跟踪案例

案例:创建一个窗口,内部有一个label控件。

要求:

  • 鼠标移入窗口时,让label位置跟随鼠标位置。
  • 让鼠标设置为指定图片

以上案例的代码:

from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPixmap, QCursor
import sysclass MyWindow(QWidget):def __init__(self, parent=None):super().__init__(parent)# 设置窗口标题和大小self.setWindowTitle('鼠标跟踪案例')self.resize(500, 500)# 设置鼠标pixmap = QPixmap('mouse.png').scaled(50, 50)cursor = QCursor(pixmap, 0, 0)  # 设置热点为鼠标左上角self.setCursor(cursor)self.setMouseTracking(True)     # 开启鼠标跟踪# 设置标签label = QLabel(self)label.setText('我爱Python,我学PyQt')label.setStyleSheet('background-color: cyan;')def mouseMoveEvent(self, me):# 让标签跟踪鼠标label = self.findChild(QLabel)label.move(me.localPos().x(), me.localPos().y())if __name__ == '__main__':app = QApplication(sys.argv)window = MyWindow()window.show()sys.exit(app.exec_())

运行结果:

在这里插入图片描述

http://www.yidumall.com/news/20999.html

相关文章:

  • 企业网站手机端太简洁信息流优化师培训机构
  • 网站怎么添加滤镜功能吗在哪里推广比较好
  • wordpress友情连接广州百度seo 网站推广
  • 图书动态网站开发百度竞价是什么意思?
  • 芜湖哪里有做网站的网站友链交换平台
  • 我做的网站打开慢怎么处理石家庄疫情
  • 怎么在公司网站做超链接网站推广优化价格
  • 公司网站改版要怎么做seo项目分析
  • 教做美食网站源码seo网站关键词快速排名
  • 在哪个网站可以做任务赚钱的seo站长助手
  • 网站建设 化工营销广告文案
  • 上海公司企业查询关键词优化收费标准
  • 做网站怎么调用栏目武汉seo优化
  • wordpress多板块百度网站排名搜行者seo
  • 手机网站制作哪家好石家庄百度seo代理
  • 学院网站建设 需求分析百度经验
  • 网站规划市场分析南宁关键词优化公司
  • 网站做5年有多少流量如何制作个人网站
  • 营销型网站推广方式的论文长沙seo网站
  • 甜水园网站建设天津网络优化推广公司
  • 简要概括自建网站的优缺点天津快速关键词排名
  • 广州建设六马路小学网站长春seo代理
  • 网站建设合同内容重庆森林粤语
  • 网站上百度要怎么做的福建seo关键词优化外包
  • 广州工作室做网站百度知道登录入口
  • 绍兴专业做网站百度云登录
  • 中国招标信息公开网扬州网站seo
  • 泉州网站建设服务百度网盘电脑版下载
  • 做电影网站需要的服务器配置千锋教育学费一览表
  • 谷歌网站推广费用河南纯手工seo