zoukankan      html  css  js  c++  java
  • 滑动条QSlider

    QSlider只提供整数范围

    滑块接受Tab键的焦点,并同时提供了一个鼠标滚轮和键盘接口。键盘接口如下:

    Left/Right 移动水平滑块一个步长。
    Up/Down 移动垂直滑块一个步长。
    PageUp 上移一页。
    PageDown 下移一页。
    Home 移动至起始位置(最小值)。
    End 移动至结束位置(最大值)

     1 import sys
     2 from PyQt5.QtCore import Qt
     3 from PyQt5.QtGui import QFont
     4 from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QLabel, QVBoxLayout, QHBoxLayout
     5 
     6 
     7 class Demo(QWidget):
     8     def __init__(self):
     9         super(Demo, self).__init__()
    10         self.slider_1 = QSlider(Qt.Horizontal, self)  # 实例化滚动条
    11         #Qt.Hrizontal  水平的滑动条
    12         #Qt.Vertical  垂直的滑动条
    13         self.slider_1.setRange(0, 100)  #设置范围
    14         self.slider_1.valueChanged.connect(lambda: self.on_change_func(self.slider_1))
    15         #当滚动条的值发生变化时发出信号
    16         self.slider_2 = QSlider(Qt.Vertical, self)
    17         self.slider_2.setMinimum(0)  # 设置最小值
    18         self.slider_2.setMaximum(100)  # 设置最大值
    19         self.slider_2.valueChanged.connect(lambda: self.on_change_func(self.slider_2))
    20         self.label = QLabel('0', self)
    21         self.label.setFont(QFont('Arial Black', 20))
    22         self.h_layout = QHBoxLayout()
    23         self.v_layout = QVBoxLayout()
    24         self.h_layout.addWidget(self.slider_2)
    25         self.h_layout.addStretch(1)
    26         self.h_layout.addWidget(self.label)
    27         self.h_layout.addStretch(1)
    28         self.v_layout.addWidget(self.slider_1)
    29         self.v_layout.addLayout(self.h_layout)
    30         self.setLayout(self.v_layout)
    31         self.slider_1.sliderPressed.connect(self.f)  #按下滑块时发射此信号
    32         self.slider_1.sliderMoved.connect(self.f1) #拖动滑块时发出信号
    33         self.slider_1.sliderReleased.connect(self.f2)  #释放滑块时发射此信号
    34 
    35     def f2(self):
    36         print('释放滑块')
    37 
    38     def f1(self):
    39         print('拖动了滑块')
    40 
    41     def f(self):
    42         print('按下了滑块')
    43 
    44 
    45     def on_change_func(self, slider):
    46         if slider == self.slider_1:
    47             self.slider_2.setValue(self.slider_1.value())
    48             #setValue   设置滚动条的值
    49             #self.slider_1.value()   返回滚动条的值
    50             self.label.setText(str(self.slider_1.value()))
    51         else:
    52             self.slider_1.setValue(self.slider_2.value())
    53             self.label.setText(str(self.slider_2.value()))
    54 
    55 
    56 if __name__ == '__main__':
    57     app = QApplication(sys.argv)
    58     demo = Demo()
    59     demo.show()
    60     sys.exit(app.exec_())
  • 相关阅读:
    Servlet监听器及在线用户
    数据分页jdbc+mysql实现
    使用ajax验证用户名重复
    Mysql中的事务
    用户登录注册案例分析
    Java连接mysql数据库
    Java连接sqlite数据库
    虚拟主机TOMCAT配置
    用jquery控制表格奇偶行及活动行颜色
    JDK安装后 没有tools.jar 和dt.jar包的解决办法
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10360570.html
Copyright © 2011-2022 走看看