QDial 旋钮控件
- 描述
- 倒圆的范围控制
- 比如汽车仪表盘上的速度计
- 继承自:QAbstractSlider
- 功能作用
- 继承自父类
- 是否显示刻度
setNotchesVisible(bool) notchesVisible() -> bool
- 设置两个大刻度之间的间隔(距离)
setPageStep(int)
- 是否启用包裹
- 启用则会在控件周边都设置上刻度, 可以任意指向
- 启用后最大值与最小值刻度之间不再有缺口,无缝连接
setWrapping(bool) wrapping() -> bool
- 相邻两个刻度之间的间隔(距离)
setNotchTarget(float) notchTarget() -> float
- 缺口大小
notchSize() 默认值1
- 可用信号
- 继承自父类
sliderPressed() # 滑块被按下时,发射信号 sliderReleased() # 滑块被释放时,发射信号 sliderMoved(int value) # 滑块被移动时,发射信号。传递滑块当前值 valueChanged(int value) # 值发生改变时,发射信号。传递滑块当前值 actionTriggered(int action) # 触发指定行为时,发射信号。传递当前行为对应索引 QAbstractSlider.SliderNoAction # 滑块没有行为 QAbstractSlider.SliderSingleStepAdd # 1,滑块单步步长增加行为,按上下键 QAbstractSlider.SliderSingleStepSub # 2,滑块单步步长减少行为,按上下键 QAbstractSlider.SliderPageStepAdd # 3,滑块每页步长增加行为,按PgUp键 QAbstractSlider.SliderPageStepSub # 4,滑块每页步长减少行为,按PgDn键 QAbstractSlider.SliderToMinimum # 5,滑块移动到最小值行为 QAbstractSlider.SliderToMaximum # 6,滑块移动到最大值行为 QAbstractSlider.SliderMove # 7,滑块移动行为,鼠标拖动滑块 rangeChanged(int min,int max) # 数值范围发生改变时,发射信号。传递最小值和最大值
- 代码示例
- 示例1:QDial功能作用
from PyQt5.Qt import * import sys class Windows(QWidget): def __init__(self): super().__init__() self.setWindowTitle('QDial-功能作用') self.resize(500, 500) self.widget_list() def widget_list(self): self.add_widget() def add_widget(self): dia = QDial(self) dia.resize(100,100) x =int((self.width()-dia.width())/2) y = int((self.height()-dia.height()) / 2) dia.move(x, y) # 设置旋钮显示刻度 dia.setNotchesVisible(True) # 设置两个大刻度之间的间隔距离(每页步长) dia.setPageStep(10) # 设置启用包裹(最小刻度和最大刻度之间不再有缺口) dia.setWrapping(True) # 设置相邻两个刻度之间的间隔距离 dia.setNotchTarget(2) if __name__ == '__main__': app = QApplication(sys.argv) window = Windows() window.show() sys.exit(app.exec_())
- 示例2:通过旋转旋钮,设置字体大小
from PyQt5.Qt import * import sys class Windows(QWidget): def __init__(self): super().__init__() self.setWindowTitle('QDial-通过旋钮调整字体大小') self.resize(500, 500) self.widget_list() def widget_list(self): self.add_widget() def add_widget(self): lab = QLabel(self) lab.setText("我要学Python") dia = QDial(self) dia.move(200, 200) dia.setNotchesVisible(True) dia.setRange(1, 72) def test(val): lab.setStyleSheet(f'font-size:{val}px;') lab.adjustSize() dia.valueChanged.connect(test) if __name__ == '__main__': app = QApplication(sys.argv) window = Windows() window.show() sys.exit(app.exec_())