gpt4 book ai didi

python - 箭头按钮的 QSpinBox 信号

转载 作者:行者123 更新时间:2023-12-01 02:21:58 36 4
gpt4 key购买 nike

我知道这个问题已经以类似的方式提出,但我迷失在使用QSpinBox(或QDoubleSpinBox<时可以选择的许多信号的广阔世界中)/)。我想将我的函数连接到 editingFinished 信号(很好,它工作完美),但这也不会连接到箭头按钮 - 所以我也需要这些信号。我不想每次发出 valueChanged 时都调用我的函数 - 仅当编辑完成或使用箭头时。

最佳答案

实现此目的的一种方法是重新实现 stepBy method并发出自定义信号。这种方法的主要优点是它可以处理使用向上/向下键以及箭头按钮所做的更改。这是一个基本演示:

import sys
from PyQt4 import QtCore, QtGui

class SpinBox(QtGui.QSpinBox):
stepChanged = QtCore.pyqtSignal()

def stepBy(self, step):
value = self.value()
super(SpinBox, self).stepBy(step)
if self.value() != value:
self.stepChanged.emit()

class Window(QtGui.QWidget):
def __init__(self):
super(Window, self).__init__()
self.spin = SpinBox()
self.spin.editingFinished.connect(self.handleSpinChanged)
self.spin.stepChanged.connect(self.handleSpinChanged)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.spin)

def handleSpinChanged(self):
print(self.spin.value())

if __name__ == '__main__':

app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(600, 100, 150, 50)
window.show()
sys.exit(app.exec_())

关于python - 箭头按钮的 QSpinBox 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47874952/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com