实战PyQt5: 037-表盘控件QDial

QDial简介

QDial是一个圆表盘控件, 各种仪表仪盘都可以抽象成一个圆表盘控件,例如汽车仪表盘上的速度计,就是一个圆表盘。

QDial继承自QAbstractSlider,因此也继承了相应的方法和信号,除此以外,它还有一些自身的常用方法。

QDial常用方法:

    setNotchesVisible(): 设置是否显示刻度 notchesVisile(): 刻度可见返回True,不可见返回False setWrapping(): 设置是否回绕 wrapping(): 如果回绕则返回True, 否则返回False setNotchTarget(): 设置刻度之间的目标刻度 notchTarget(): 返回刻度间的目标宽度 notchSize(): 当前刻度尺寸

QDial类继承关系:

测试QDial

创建文件qdial.py在其中加入一个QDial控件,设置其范围,一个QLabel控件,用于显示操作QDial时的值。完整代码如下:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import (QApplication, QWidget, QDial, 
                              QLabel, QHBoxLayout)
 
class DemoDial(QWidget):
    def __init__(self, parent=None):
        super(DemoDial, self).__init__(parent)       
        
        # 设置窗口标题
        self.setWindowTitle(实战PyQt5: QDial Demo!)      
        # 设置窗口大小
        self.resize(400, 300)
        
        self.initUi()
        
    def initUi(self):
        self.dial = QDial(self)
        self.dial.setRange(0,100)
        self.dial.setNotchesVisible(True)
        self.dial.valueChanged.connect(self.onDialValueChanged)
        
        self.labValue = QLabel(0,self)
        self.labValue.setFont(QFont(Arial Black, 24))
        
        hLayout = QHBoxLayout(self)
        hLayout.addWidget(self.dial)
        hLayout.addWidget(self.labValue)
        
        self.setLayout(hLayout)
        
    def onDialValueChanged(self):
        self.labValue.setText(str(self.dial.value()))
        
        
if __name__ == __main__:
    app = QApplication(sys.argv)
    window = DemoDial()
    window.show()
    sys.exit(app.exec())

运行结果如下图:

测试QDial

本文知识点

    表盘控件的应用场景; 表盘控件的刻度控制; 表盘控件的值的文字显示。

前一篇:

经验分享 程序员 微信小程序 职场和发展