在PyQt添加SQlider滑动条后,发现鼠标点击时滑块只能按照设定步数一步步移动,不能点哪里滑块到哪里。网上查找资料后发现这方面相关参考资料比较少,且大多数文章表述对我个人来说比较难理解,最后综合参考几篇较好的文章后才实现功能,在这里记录一下具体实现方法。
目录
一. 设计UI界面
二. 将.ui文件转为.py文件
三. 重写QSlider的鼠标点击事件
四. 添加窗口运行查看效果**
一. 设计UI界面
为了方便直观设计界面,UI设计在Qt Designer中完成。
首先,在Qt Designer中创建一个Widget窗体,如下图。
然后,将界面左侧水平滑动条直接拖到窗体中,添加两个,名称分别为horizontalSlider和horizontalSlider_2,点击保存。
二. 将.ui文件转为.py文件
在PyCharm中,通过PyUic工具将刚刚保存的slider_test.ui文件转化为.py文件,具体过程请参考相关教程。
转化成功后会有一个slider_test.py文件。

三. 重写QSlider的鼠标点击事件
双击打开slider_test.py文件(也可不在Qt Designer中设计,直接创建.py文件复制程序)。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(487, 402)
self.horizontalSlider = QtWidgets.QSlider(Form)
self.horizontalSlider.setGeometry(QtCore.QRect(60, 140, 361, 31))
self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
self.horizontalSlider.setObjectName("horizontalSlider")
self.horizontalSlider_2 = QtWidgets.QSlider(Form)
self.horizontalSlider_2.setGeometry

本文介绍了如何在PyQt5中实现QSlider滑动条的鼠标点击定位功能,通过重写QSlider的mousePressEvent事件,使得滑块能够根据鼠标点击位置精确移动。在QtDesigner设计UI界面,将.ui文件转换为.py文件,然后创建自定义的MySlider类,继承QSlider并添加信号处理点击事件。最后在主窗口类中连接信号和槽,实现滑动条的点击定位功能。

702

被折叠的 条评论
为什么被折叠?



