Skip to content

SiLabel.py

IceF != 0 edited this page Jun 26, 2024 · 5 revisions

SiLabel.py 提供了比 QLabel 更加强大的标签类型:SiLabel SiPixLabel SiDraggableLabel

SiLabel

基本信息

  • 继承自 QLabel

  • 方法:
    activate()
    deactivate()
    hasMoveLimits() > bool
    isActive() > bool
    moveTo(int, int)
    removeMoveLimits()
    setAutoAdjustSize(bool)
    setHint(str)
    setInstantMove(bool)
    setMoveLimits(int, int, int, int)
    setText(str)

  • 信号:
    moved > [int, int]

activate()

尝试启动移动动画

deactivate()

停止移动动画

hasMoveLimits()

返回该 SiLabel 是否具有移动位置限制

isActive()

返回动画是否正在进行

moveTo(int, int)

moveTo 方法被调用时,如果立即移动策略为否,则会将传入值设为动画的目标值,并调用 self.activate 方法
如果立即移动策略被启用,那么会直接调用 self.move,实现立即移动

removeMoveLimits()

移除移动位置限制(如果有)

setAutoAdjustSize(bool)

设置自动调节尺寸
这会使每次调用 self.setText 后调用 self.adjustSize,如果你继承 SiLabel 构建新类,可以通过重写 adjustSize 方法以实现某些功能

setHint(str)

设置提示栏文字

setInstantMove(bool)

设置立即移动策略

setMoveLimits(int, int, int, int)

设置移动限制 当 moveTo 方法被调用时,它会将传入值 (x, y) 传入内部函数 _legalizeMovingTarget(x, y) 以获得合法的移动位置,从而保证控件在移动范围内移动,设置移动范围需要 setMoveLimits 方法来实现,传入值 (x1, y1, x2, y2) 中前两者是左上角坐标,后两者是右下角坐标
需要强调的是,setMoveLimits 已经考虑了控件的长和宽,这已经保证了控件的任何部分不超出规定的矩形范围

setText(str)

改变控件文字

Clone this wiki locally