python - PyQt5:带有延迟的 QSlider valueChanged 事件

标签 python python-3.x pyqt5 qslider

我在我的 GUI 应用程序中使用 QSlider,以便在 QSlider 中的值更改后执行繁重的任务。我这样做如下。

self.slider.valueChanged.connect(self.value_changed)  # Inside __init__() function

def value_changed(self):  # Inside the class
    # Do the heavy task

但我无法顺利更改 slider 的值,因为每次更改值时都在运行繁重的任务。

我需要的是在值更改后运行繁重的任务,但前提是 slider 的值暂时没有变化。

我不知道如何在 python 中执行此操作。任何帮助..?

最佳答案

我不是专家,我在战斗结束后很久才到达,但我也需要这样的东西,而且我对计时器一无所知。它适用于一个 slider ,但我需要 3 个。所以我想出了这个解决方案:当按下 slider 时,我断开 valueChanged 插槽,当 slider 被释放时,我重新连接它并抛出一个 valueChanged 信号,比如这个:

    self.sldAZap.valueChanged.connect(self.sliderChanged)
    self.sldAZap.sliderPressed.connect(self.sldDisconnect)
    self.sldAZap.sliderReleased.connect(self.sldReconnect)

def sldDisconnect(self):
    self.sender().valueChanged.disconnect()

def sldReconnect(self):
    self.sender().valueChanged.connect(self.sliderChanged)
    self.sender().valueChanged.emit(self.sender().value())

def sliderChanged(self):
    print(self.sender().objectName() + " : " + str(self.sender().value())

采用这种方案,从松开鼠标到执行代码之间没有延迟,代码只执行一次。

我希望我已经足够清楚了,它可能会对某人有所帮助。

关于python - PyQt5:带有延迟的 QSlider valueChanged 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43152489/

相关文章:

python - 让 Enter 键的行为类似于 QTableWidget 中的 Tab

python - 使用拖放时如何拖动图标

python - 如何获得正确的变量引用

python-3.x - Selenium 使用 2captcha Python 提交 recaptcha

python-3.x - "can' t 将用户与前缀结合起来“尝试为具有依赖项的函数创建 zip 包

python - 在 antlr4 python3 目标中将 java 转换为 python

python - 在 QTableView 中显示某些列

python - 在运行时将特征连接到输入层的词嵌入

python - 在 Python 中使用 "caret"时正则表达式性能下降

python - 导出单个 .exe 时,PyInstaller 卡在 "Building PKG ..."上