最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyQt QDoubleSpinBox控件用法示例詳解

 更新時間:2025年04月02日 09:59:50   作者:QMT量化交易  
QDoubleSpinBox?是 PyQt中用于輸入浮點數(shù)的控件,支持鍵盤輸入和上下箭頭調(diào)整數(shù)值,本文給大家介紹PyQt QDoubleSpinBox控件用法,感興趣的朋友一起看看吧

QDoubleSpinBox 是 PyQt中用于輸入浮點數(shù)的控件,支持鍵盤輸入和上下箭頭調(diào)整數(shù)值。與QtSpinBox不同,QtSpinBox是用于輸入整數(shù)的控件。

關(guān)鍵屬性和方法

QDoubleSpinBox 的關(guān)鍵屬性和方法如下表所示:

方法/屬性說明
setRange(min, max)設(shè)置數(shù)值范圍
setSingleStep(step)設(shè)置步長(箭頭點擊一次的變化量)
setDecimals(n)設(shè)置小數(shù)位數(shù)
setValue(value)設(shè)置當(dāng)前值
value()獲取當(dāng)前值
valueChanged數(shù)值變化時觸發(fā)的信號
setPrefix(text)添加前綴文本
setSuffix(text)添加后綴文本

基礎(chǔ)設(shè)置方法

  • setRange(min, max)
  • 設(shè)置數(shù)值范圍(最小值 min,最大值 max)。
  • setMinimum(min) / setMaximum(max)
  • 單獨設(shè)置最小值或最大值。
  • setSingleStep(step)
  • 設(shè)置步長(點擊箭頭時數(shù)值的變化量)。
  • setDecimals(prec)
  • 設(shè)置顯示的小數(shù)位數(shù)(如 prec=2 保留兩位小數(shù))。
  • setValue(value)
  • 直接設(shè)置當(dāng)前值(需確保值在范圍內(nèi))。
  • setPrefix(text) / setSuffix(text)
  • 添加前綴或后綴文本(如單位符號)。

值獲取方法

  • value()
  • 返回當(dāng)前數(shù)值(浮點數(shù)類型)。
  • textFromValue(value) / valueFromText(text)
  • 自定義數(shù)值與文本的轉(zhuǎn)換邏輯(用于輸入驗證或格式化)。

行為控制方法

  • setKeyboardTracking(enabled)
  • 控制是否在輸入時實時更新值(默認(rèn) True,實時更新;設(shè)為 False 則在輸入完成后更新)。
  • stepBy(steps)
  • 按步長增量調(diào)整值(正數(shù)增加,負(fù)數(shù)減少)。
  • stepUp() / stepDown()
  • 觸發(fā)一次步長增加或減少操作。

輸入驗證方法

  • setCorrectionMode(mode)
  • 設(shè)置輸入修正模式(如 QDoubleSpinBox.CorrectToNearestValue 自動修正非法值)。
  • validate(text, pos) / fixup(text)
  • 自定義輸入驗證邏輯(需重寫方法)。

信號

  • valueChanged(double)
  • 數(shù)值變化時觸發(fā)的信號(參數(shù)為當(dāng)前值)。
  • editingFinished()
  • 用戶結(jié)束編輯(如按下回車或焦點離開)時觸發(fā)。

其他實用方法

  • clear()
  • 清空值(重置為最小值或 0.0,取決于范圍)。
  • setAlignment(alignment)
  • 設(shè)置文本對齊方式(如 Qt.AlignRight)。
  • setReadOnly(enabled)
  • 設(shè)為只讀模式(用戶不可編輯)。

用法示例

控件初始化

from PyQt5.QtWidgets import QApplication, QWidget, QDoubleSpinBox, QVBoxLayout
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
# 創(chuàng)建控件并設(shè)置初始屬性
spinbox = QDoubleSpinBox()
spinbox.setRange(-100.0, 100.0)   # 設(shè)置數(shù)值范圍
spinbox.setSingleStep(0.5)        # 設(shè)置步長(箭頭點擊一次的變化量)
spinbox.setDecimals(2)            # 保留兩位小數(shù)
spinbox.setValue(3.14)            # 設(shè)置初始值
layout.addWidget(spinbox)
window.setLayout(layout)
window.show()
app.exec_()

信號與槽連接

當(dāng)用戶修改數(shù)值時,觸發(fā) valueChanged 信號:

def on_value_changed(value):
    print(f"當(dāng)前值: {value}")
spinbox.valueChanged.connect(on_value_changed)

動態(tài)調(diào)整范圍

根據(jù)條件動態(tài)修改范圍或步長:

# 當(dāng)數(shù)值超過50時,自動擴展范圍
def check_range(value):
    if value > 50.0:
        spinbox.setRange(0.0, 100.0)
    else:
        spinbox.setRange(0.0, 50.0)
spinbox.valueChanged.connect(check_range)

格式化顯示

添加前綴/后綴或自定義格式:

spinbox.setPrefix("溫度: ")     # 添加前綴
spinbox.setSuffix("°C")        # 添加后綴
# 使用自定義格式(如貨幣)
spinbox.setDecimals(0)
spinbox.setPrefix("$ ")

輸入驗證

限制用戶輸入非法值(如超過范圍時自動修正):

spinbox.setKeyboardTracking(False)  # 輸入完成后再驗證(而非實時)
def validate_input(value):
    if value < 0:
        return 0.0  # 自動修正為最小值
    return value
spinbox.valueFromText = lambda text: validate_input(float(text))

高級用法:自定義步長邏輯

根據(jù)當(dāng)前值動態(tài)調(diào)整步長(如對數(shù)刻度):

def dynamic_step(value):
    if value < 1.0:
        return 0.1
    elif value < 10.0:
        return 0.5
    else:
        return 1.0
spinbox.setSingleStep(0.1)  # 初始步長
def on_step_up():
    current = spinbox.value()
    step = dynamic_step(current)
    spinbox.setValue(current + step)
def on_step_down():
    current = spinbox.value()
    step = dynamic_step(current)
    spinbox.setValue(current - step)
# 替換默認(rèn)的上下箭頭行為
spinbox.stepUp.connect(on_step_up)
spinbox.stepDown.connect(on_step_down)

到此這篇關(guān)于PyQt QDoubleSpinBox控件用法詳解的文章就介紹到這了,更多相關(guān)PyQt QDoubleSpinBox控件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 讀取千萬級數(shù)據(jù)自動寫入 MySQL 數(shù)據(jù)庫

    Python 讀取千萬級數(shù)據(jù)自動寫入 MySQL 數(shù)據(jù)庫

    這篇文章主要介紹了Python 讀取千萬級數(shù)據(jù)自動寫入 MySQL 數(shù)據(jù)庫,本篇文章會給大家系統(tǒng)的分享千萬級數(shù)據(jù)如何寫入到 mysql,分為兩個場景,兩種方式
    2022-06-06
  • 20招讓你的Python飛起來!

    20招讓你的Python飛起來!

    20招讓你的 Python飛起來!這篇文章主要為大家詳細(xì)介紹了Python性能優(yōu)化的20條建議,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Python3+OpenCV實現(xiàn)簡單交通標(biāo)志識別流程分析

    Python3+OpenCV實現(xiàn)簡單交通標(biāo)志識別流程分析

    這篇文章主要介紹了Python3+OpenCV實現(xiàn)簡單交通標(biāo)志識別,主要思路是解析XML文檔,根據(jù)<name>標(biāo)簽進(jìn)行分類,如果是直行、右轉(zhuǎn)、左轉(zhuǎn)、停止就把它從原圖中裁剪下來并重命名,感謝的朋友跟隨小編一起看看示例代碼
    2021-12-12
  • pycharm設(shè)置默認(rèn)的UTF-8編碼模式的方法詳解

    pycharm設(shè)置默認(rèn)的UTF-8編碼模式的方法詳解

    這篇文章主要介紹了pycharm設(shè)置默認(rèn)的UTF-8編碼模式,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python3的介紹、安裝和命令行的認(rèn)識(推薦)

    Python3的介紹、安裝和命令行的認(rèn)識(推薦)

    Python是著名的“龜叔”Guido van Rossum在1989年圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié)而編寫的一個編程語言。這篇文章主要介紹了Python3的介紹、安裝和命令行的認(rèn)識,需要的朋友可以參考下
    2018-10-10
  • Django如何繼承AbstractUser擴展字段

    Django如何繼承AbstractUser擴展字段

    這篇文章主要介紹了Django如何繼承AbstractUser擴展字段,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Python使用Tkinter實現(xiàn)機器人走迷宮

    Python使用Tkinter實現(xiàn)機器人走迷宮

    這篇文章主要為大家詳細(xì)介紹了Python使用Tkinter實現(xiàn)機器人走迷宮,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 淺談Python3中datetime不同時區(qū)轉(zhuǎn)換介紹與踩坑

    淺談Python3中datetime不同時區(qū)轉(zhuǎn)換介紹與踩坑

    最近的項目需要根據(jù)用戶所屬時區(qū)制定一些特定策略,學(xué)習(xí)、應(yīng)用了若干python3的時區(qū)轉(zhuǎn)換相關(guān)知識,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Python的Flask框架路由實現(xiàn)詳解

    Python的Flask框架路由實現(xiàn)詳解

    這篇文章主要介紹了Python的Flask框架路由實現(xiàn)詳解,在啟動程序時,python解釋器會從上到下對代碼進(jìn)行解釋,當(dāng)遇到裝飾器時,會執(zhí)行,并把函數(shù)對應(yīng)的路由以字典的形式進(jìn)行存儲,當(dāng)請求到來時,即可根據(jù)路由查找對應(yīng)要執(zhí)行的函數(shù)方法,需要的朋友可以參考下
    2023-08-08
  • Python實現(xiàn)將json格式數(shù)據(jù)存儲到Mysql數(shù)據(jù)庫

    Python實現(xiàn)將json格式數(shù)據(jù)存儲到Mysql數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)將json格式數(shù)據(jù)存儲到Mysql數(shù)據(jù)庫,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考下
    2025-03-03

最新評論

虞城县| 垦利县| 南昌市| 绥中县| 漳浦县| 林口县| 寿阳县| 松阳县| 瑞昌市| 灌南县| 临猗县| 贺州市| 荆州市| 文昌市| 申扎县| 荣成市| 安宁市| 阜康市| 临湘市| 嘉峪关市| 科技| 凤台县| 广南县| 广德县| 康定县| 遂宁市| 灵川县| 攀枝花市| 云梦县| 平江县| 玉环县| 柳江县| 陵川县| 望都县| 霍山县| 郁南县| 肃南| 泽库县| 南漳县| 兰溪市| 泰宁县|