PyQt5 QDoubleSpinBox – 获取小数精度

  • Post category:Python

PyQt5是Python的一个GUI库,其中的QDoubleSpinBox是一个用于输入浮点数的小部件。在使用QDoubleSpinBox时,有时候需要获取用户输入的小数精度,本文将通过两个示例介绍如何实现。

示例1:获取输入框中小数的精度

from PyQt5.QtWidgets import QApplication, QDoubleSpinBox, QVBoxLayout, QWidget

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()
        self.doubleSpinBox = QDoubleSpinBox()
        self.doubleSpinBox.setRange(-1000, 1000)
        layout.addWidget(self.doubleSpinBox)
        self.setLayout(layout)

    def get_precision(self):
        # 获取小数精度
        text = self.doubleSpinBox.text()
        if "." in text:
            return len(text.split(".")[-1])
        else:
            return 0

if __name__ == '__main__':
    app = QApplication([])
    widget = MyWidget()
    widget.show()

    # 点击窗口关闭按钮时退出应用程序
    app.exec_()

运行程序后,在输入框中输入任意浮点数,然后调用 get_precision() 方法,可以获取到输入框中小数的精度。

示例2:限制用户输入的小数精度

from PyQt5.QtWidgets import QApplication, QDoubleSpinBox, QVBoxLayout, QWidget

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()
        self.doubleSpinBox = QDoubleSpinBox()
        self.doubleSpinBox.setRange(-1000, 1000)
        self.doubleSpinBox.setDecimals(2) # 设置小数位数为2
        layout.addWidget(self.doubleSpinBox)
        self.setLayout(layout)

if __name__ == '__main__':
    app = QApplication([])
    widget = MyWidget()
    widget.show()

    # 点击窗口关闭按钮时退出应用程序
    app.exec_()

运行程序后,在输入框中输入任意的浮点数,只会保留小数点后两位。通过设置 setDecimals 方法可以限制用户输入的小数精度。