PyQt5_QSpinBox_整型数据步长调节器
QSpinBox(parent: QWidget = None)
setMaximum(max_num) # 设置最大值,默认是 99
maximum() -> int # 获取最大值
setMinimum(min_num) # 设置最小值,默认是 0
minnum ——> int # 获取最小值
setRange(min_num, max_num) # 设置数值区间
setWrapping(bool) # 设置开启数值循环
wrapping() -> bool # 获取是否开启数值循环
setSingleStep(step_int) # 设置步长调节器但不步长值
singleStep() -> int # 获取步长调节器但不步长值
setPrefix("周") # 设置前缀作为展示
prefix() -> str # 获取前缀
setSuffix("月") # 设置后缀作为展示
suffix() -> str # 获取后缀
setSpecialValueText(str) # 设置最小值特殊文本,父类中的方法
setDisplayIntegerBase(int) # 设置显示基数,默认是10
displayIntegerBase() -> int # 获取显示基数
# 以什么进制的形式进行展示
setValue(int) # 设置控件的值
sb.lineEdit().setText(str) # 设置控件的值
value() ——> int # 获取控件的值,不包含前缀和后缀
cleanText() ——> str # 获取控件的值,不包含前缀和后缀
text() ——> str # 获取控件的值,包含前缀和后缀
sb.lineEdit().text() ——>str # 获取控件的值,包含前缀和后缀
# 子类化该对象,重写textFromValue方法
textFromValue(self, p_int) -> format_str
# 继承父类QAbstractSpinBox的信号
valueChanged(self, int) [signal] # 值发生改变时候发射该信号,传递整数类型参数值:value
valueChanged(self, str) [signal] # 值发生改变时候发射该信号,传递字符串类型参数值:text
# 这两个信号名称是一样的,仅仅是发射时传递的参数类型不一致(一个传的是int整数型,一个传的是String文本字符型)
# 在使用的时候需要通过 valueChanged[str].connect() 的方式来指定
from PyQt5.Qt import *
import sys
class MySpinBox(QSpinBox):
def textFromValue(self, v: int) -> str:
return str(v) + 'px * ' + str(v) + 'px'
class Windows(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QSpinBox-创建使用')
self.resize(500, 500)
self.widget_list()
def widget_list(self):
self.add_widget()
def add_widget(self):
# sb = QSpinBox(self)
# sb.resize(150,20)
# sb.move(100, 100)
# ****************设置最大/最小值****************** 开始
# sb.setMaximum(180) # 设置最大值
# print(sb.maximum()) # 获取最大值
# sb.setMinimum(10) # 设置最小值
# print(sb.minimum()) # 获取最小值
# sb.setRange(5, 100) # 设置取值范围
# ****************设置最大/最小值****************** 结束
pass
# ****************设置数值循环****************** 开始
# sb.setWrapping(True) # 设置数值循环,当达到最大/最小值时,跳转到最小/最大值
# print(sb.wrapping()) # 获取是否数值循环
# ****************设置数值循环****************** 结束
pass
# ****************设置步长****************** 开始
# sb.setSingleStep(2) # 设置单步步长为2
#
# print(sb.singleStep()) # 获取单步步长
# ****************设置步长****************** 结束
pass
# ****************设置前缀和后缀****************** 开始
# 设置选项为1月~12月
# sb.setRange(1, 12)
# sb.setSuffix('月')
# 设置选项为 周日 ~ 周六
# sb.setRange(0, 6)
# sb.setPrefix('周')
# 这里周日显示不了,只能显示为周0
# 那么我们就需要用到最小值特殊文本设置方法了
# ****************设置前缀和后缀****************** 结束
pass
# ****************最小值特殊文本设置****************** 开始
# sb.setRange(0, 6)
# sb.setPrefix('周')
# sb.setSpecialValueText("周日")
# 当设置了最小值特殊文本后,显示这个特殊文本的时候前缀和后缀会丢失
# ****************最小值特殊文本设置****************** 结束
pass
# ****************设置显示基数(进制)****************** 开始
# sb.setDisplayIntegerBase(2) # 设置显示基数为二进制
# print(sb.displayIntegerBase()) # 获取显示基数(进制)
# ****************设置显示基数(进制)****************** 结束
pass
# ****************设置和获取值****************** 开始
# sb.setRange(0, 6)
# sb.setPrefix('周')
# sb.setSpecialValueText("周日")
#
# sb.setValue(3) # 设置控件的值
# sb.lineEdit().setText('4') # 设置控件的值
#
# print(sb.value()) # 获取控件的值,不包含前缀和后缀
# print(sb.cleanText()) # 获取控件的值,不包含前缀和后缀
#
# print(sb.text()) # 获取控件的值,包含前缀和后缀
# print(sb.lineEdit().text()) # 获取控件的值,包含前缀和后缀
# ****************设置和获取值****************** 结束
pass
# ****************自定义显示格式****************** 开始
# sb1 = MySpinBox(self)
# sb1.resize(150, 20)
# sb1.move(100, 150)
#
# sb.setValue(10)
# sb1.setValue(10)
# ****************自定义显示格式****************** 结束
pass
# ****************可用信号****************** 开始
sb1 = MySpinBox(self)
sb1.resize(150, 20)
sb1.move(100, 150)
sb1.setValue(10)
sb1.valueChanged[int].connect(lambda val: print('int:', type(val), val))
sb1.valueChanged[str].connect(lambda val: print('str:', type(val), val))
# ****************可用信号****************** 结束
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Windows()
window.show()
sys.exit(app.exec_())