muzing ff9cdb3391 Update 03-09-01-02
补充鼠标滚轮控制
2022-07-24 21:52:58 +08:00

72 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import sys
from PySide6 import QtCore, QtWidgets
"""
QAbstractSlider 数值范围、步长、值
可以通过如下方法,限制滑块的最大/小值、页步长使用PageUp/PageDown键盘按键输入时每次按键变化的值
、单步长(使用键盘方向键或鼠标滚轮每次移动的值)、设置滑块当前值与获取滑块当前值
.setMaximum(max: int) 设置最大值默认为99
.maximum() -> int 获取当前设置的最大值
.setMinimum(mini: int) 设置最小值默认为0
.minimum() -> int 获取当前设置的最小值
.setPageStep(step: int) 设置页步长默认为10
.pageStep() -> int 获取当前设置的页步长
.setSingleStep(step: int) 设置单步长默认值为1
.singleStep() -> int 获取当前设置的单步长
.setValue(value: int) 通过编程方式设置滑块当前值,若超出范围则取极限值
.value() -> int 获取滑块当前值
"""
class MyWidget(QtWidgets.QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle("QAbstractSlider-功能测试")
self.resize(800, 600)
self.setup_ui()
self.test()
def setup_ui(self) -> None:
"""设置界面"""
self.slider = QtWidgets.QSlider(self)
self.slider.move(200, 200)
info_label = QtWidgets.QLabel(self)
info_label.move(240, 200)
@QtCore.Slot(int)
def show_value(value: int):
info_label.setText(f"滑块的值变成了{value}")
info_label.adjustSize()
self.slider.valueChanged.connect(show_value) # type: ignore
def test(self) -> None:
"""测试滑块数值范围、步长、值功能"""
# 数值范围
self.slider.setMaximum(200)
self.slider.setMinimum(20)
# 步长通过键盘方向键、PageUp/PageDown、鼠标滚轮测试
self.slider.setSingleStep(5) # 设置单步长
self.slider.setPageStep(20) # 设置页步长
# 设置滑块当前值
self.slider.setValue(100)
# self.slider.setValue(1000) # 超过最大值限制实际设置为最大值200
print(self.slider.value())
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyWidget()
window.show()
sys.exit(app.exec())