亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PyQt QDoubleSpinBox控件用法示例詳解

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

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

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

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

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

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

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

值獲取方法

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

行為控制方法

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

輸入驗(yàn)證方法

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

信號(hào)

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

其他實(shí)用方法

  • clear()
  • 清空值(重置為最小值或 0.0,取決于范圍)。
  • setAlignment(alignment)
  • 設(shè)置文本對(duì)齊方式(如 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è)置步長(zhǎng)(箭頭點(diǎn)擊一次的變化量)
spinbox.setDecimals(2)            # 保留兩位小數(shù)
spinbox.setValue(3.14)            # 設(shè)置初始值
layout.addWidget(spinbox)
window.setLayout(layout)
window.show()
app.exec_()

信號(hào)與槽連接

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

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

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

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

# 當(dāng)數(shù)值超過(guò)50時(shí),自動(dòng)擴(kuò)展范圍
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("$ ")

輸入驗(yàn)證

限制用戶輸入非法值(如超過(guò)范圍時(shí)自動(dòng)修正):

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

高級(jí)用法:自定義步長(zhǎng)邏輯

根據(jù)當(dāng)前值動(dòng)態(tài)調(diào)整步長(zhǎng)(如對(duì)數(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)  # 初始步長(zhǎng)
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas.DataFrame.drop_duplicates 用法介紹

    pandas.DataFrame.drop_duplicates 用法介紹

    這篇文章主要介紹了pandas.DataFrame.drop_duplicates 用法介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python刪除指定類(lèi)型(或非指定)的文件實(shí)例詳解

    python刪除指定類(lèi)型(或非指定)的文件實(shí)例詳解

    這篇文章主要介紹了python刪除指定類(lèi)型(或非指定)的文件,以實(shí)例形式較為詳細(xì)的分析了Python刪除文件的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • python類(lèi)方法和靜態(tài)方法詳解

    python類(lèi)方法和靜態(tài)方法詳解

    這篇文章主要為大家介紹了python類(lèi)方法和靜態(tài)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • 解決DataFrame排序sort的問(wèn)題

    解決DataFrame排序sort的問(wèn)題

    今天小編就為的大家分享一篇解決DataFrame排序sort的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 使用Termux在手機(jī)上運(yùn)行Python的詳細(xì)過(guò)程

    使用Termux在手機(jī)上運(yùn)行Python的詳細(xì)過(guò)程

    這篇文章主要介紹了使用Termux在手機(jī)上運(yùn)行Python的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Pytorch之contiguous的用法

    Pytorch之contiguous的用法

    今天小編就為大家分享一篇Pytorch之contiguous的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python中的import絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入詳解

    python中的import絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入詳解

    這篇文章主要介紹了python中的import絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入詳解,在使用python做一些簡(jiǎn)單項(xiàng)目時(shí),import一般不會(huì)出現(xiàn)問(wèn)題,但項(xiàng)目結(jié)構(gòu)復(fù)雜時(shí),import可能發(fā)生報(bào)錯(cuò),需要的朋友可以參考下
    2023-11-11
  • pycharm實(shí)現(xiàn)猜數(shù)游戲

    pycharm實(shí)現(xiàn)猜數(shù)游戲

    這篇文章主要為大家詳細(xì)介紹了pycharm實(shí)現(xiàn)猜數(shù)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 詳解python中__name__的意義以及作用

    詳解python中__name__的意義以及作用

    這篇文章主要介紹了詳解python中__name__的意義以及作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python----數(shù)據(jù)預(yù)處理代碼實(shí)例

    Python----數(shù)據(jù)預(yù)處理代碼實(shí)例

    這篇文章主要介紹了Python數(shù)據(jù)預(yù)處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論