【Python】【Day5】图像管理系统笔记_图形交互界面_PyQt5【4】【控件设置 & 事件转发】

控件

控件的大小位置

  • .move()
    操控 x 和 y,也就是 pos。(包括窗口框架)
move(x, y)
  • .resize()
    操控宽高(不包括窗口框架)
resize(width, height)
  • .setGeometry
    参照为用户区域。
setGeometry(x_noFrame, y_noFrame, width, height)
  • .adjustSize()
    根据内容自适应大小。
    比如为标签增加内容后,使用该函数自适应大小:
def ITCB_CopyLabel():
    label.setText(label.text() + "copy")
    label.adjustSize()
  • .setFixedSize()
    设定固定尺寸。

内容边距

作用:
设置控件中内容的显示范围。
注意:文本内容在内容区域中靠左,垂直方向居中。

  • setContensMargins()
    设置内容边距。
  • getContentsMargins()
    获取内容边距。
  • contensRect()
    获取内容区域。

事件转发

  当几个对象有父子关系时,子对象触发的事件首先转发给子对象事件函数处理,当子对象函数未进行处理时,转发到其父对象事件函数,层层转发,直到事件函数进行了处理或者没有父对象可以转发为止。

  • 注意,当对象为标签且事件为鼠标点击时,很容易观察到这种现象,因为标签的主要功能是展示,所以 PyQt 并没有对点击事件进行处理,当我们没有重载该事件函数时,事件便会被层层转发。

  • 而按钮则不同,即使我们没有重载事件函数,PyQt 也已经内置了事件处理函数,所以一般点击事件不会被层层转发。

  • 几个方法示例:

    • accept()
      强制标识事件已经被处理(不会被转发)。
    • isAccepted()
      返回事件是否已经被处理。
    • ignore()
      强制标识事件未被处理,事件将会转发给父对象。
    def mousePressEvent(self, evt) -> None:
    	evt.accept()
    	evt.isAccepted()
        evt.ignore()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__Witheart__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值