我在PyQt5中使用QSlider元素时遇到了问题。以下是我的代码的简化版本,仅调用滑块。我有两种方法:一种是在移动时打印滑块值,另一种是在用户释放按钮后打印滑块值。]
如果将滑块拖动到某个位置(假设为10)并保持在该位置,则它应打印出10。如果释放它,则它将打印出11(如果从左侧拖动),或者打印出9(如果从右侧拖动。)>
我真的很茫然,为什么它会根据滑块的移动方向偏移1。我希望这两种方法打印出相同的数字。
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QSlider from PyQt5.QtCore import Qt import sys class GUIWindow(QWidget): def __init__(self): super().__init__() self.setGeometry(300, 0, 900, 900) # Slider self.eventSlider = QSlider(Qt.Horizontal) self.eventSlider.setFixedWidth(600) self.eventSlider.setSingleStep(1) self.eventSlider.setValue(0) self.eventSlider.setMinimum(0) self.eventSlider.setMaximum(20) self.eventSlider.setTickInterval(1) self.eventSlider.setTickPosition(QSlider.TicksBelow) self.eventSlider.sliderMoved.connect(self.slider_changing) self.eventSlider.sliderReleased.connect(self.slider_changed) GUILayout = QGridLayout() GUILayout.setContentsMargins(0, 0, 0, 0) GUILayout.addWidget(self.eventSlider, 0, 0, 1, 9, alignment=Qt.AlignCenter) self.setLayout(GUILayout) def slider_changing(self): print(self.eventSlider.value()) def slider_changed(self): print(self.eventSlider.value()) if __name__ == '__main__': app = QApplication(sys.argv) window = GUIWindow() window.show() sys.exit(app.exec_())
我在PyQt5中使用QSlider元素时遇到了问题。以下是我的代码的简化版本,仅调用滑块。我有两种方法:一种是在移动滑块值时打印它,另一种是...
您对QAbstractSlider的机制(这是QSlider之类的小部件的基类)的机制感到困惑。
让我们看一下文档中的说明。